// -----------------------------------------------------------------------------
// Author : 3056710696@qq.com
// File   : lms2.v
// Create : 2024-05-09 19:20:34
// Revise : 2024-05-09 21:39:02
// Editor : sublime text3, tab size (4)
// -----------------------------------------------------------------------------
module lms2
#(
parameter	X_W			=	16				,
parameter	D_W  		=	16 				,
parameter	W_W			=	16				,
parameter	E_W			=	16				,
parameter	Y_W			=	16				,
parameter	U_SHIFT		=	8				, //步长因子移位
parameter	LMS_ORDER	=	256				
)
(
	input		wire								clk				,
	input 		wire								rst_n			,
	input		wire	signed	[X_W-1 : 0]			xin				, //远端参考信号
	input 		wire	signed	[D_W-1 : 0]			din 			, //麦克风输入信号
	output		reg									x_data_in_vld 	, 
	output		reg 	signed	[E_W-1 : 0]			eout			
	);

/*计数值控制当前时刻乘法*/
reg  [8:0] count;

/*乘数与被乘数，根据计数值来指定*/
reg  signed [15:0] mul_a;
reg  signed [15:0] mul_b;
wire  signed [31:0] mul_p;

reg  signed  [X_W-1:0] x_mul;

reg signed [X_W+W_W+1:0] y_sum; 

wire signed [X_W+E_W-1:0] x_e;

//中间变量，用来存储滤波器卷积的中间值
reg signed [15:0]    delay_pipeline1;
reg signed [15:0]    delay_pipeline2;
reg signed [15:0]    delay_pipeline3;
reg signed [15:0]    delay_pipeline4;
reg signed [15:0]    delay_pipeline5;
reg signed [15:0]    delay_pipeline6;
reg signed [15:0]    delay_pipeline7;
reg signed [15:0]    delay_pipeline8;
reg signed [15:0]    delay_pipeline9;
reg signed [15:0]    delay_pipeline10;
reg signed [15:0]    delay_pipeline11;
reg signed [15:0]    delay_pipeline12;
reg signed [15:0]    delay_pipeline13;
reg signed [15:0]    delay_pipeline14;
reg signed [15:0]    delay_pipeline15;
reg signed [15:0]    delay_pipeline16;
reg signed [15:0]    delay_pipeline17;
reg signed [15:0]    delay_pipeline18;
reg signed [15:0]    delay_pipeline19;
reg signed [15:0]    delay_pipeline20;
reg signed [15:0]    delay_pipeline21;
reg signed [15:0]    delay_pipeline22;
reg signed [15:0]    delay_pipeline23;
reg signed [15:0]    delay_pipeline24;
reg signed [15:0]    delay_pipeline25;
reg signed [15:0]    delay_pipeline26;
reg signed [15:0]    delay_pipeline27;
reg signed [15:0]    delay_pipeline28;
reg signed [15:0]    delay_pipeline29;
reg signed [15:0]    delay_pipeline30;
reg signed [15:0]    delay_pipeline31;
reg signed [15:0]    delay_pipeline32;
reg signed [15:0]    delay_pipeline33;
reg signed [15:0]    delay_pipeline34;
reg signed [15:0]    delay_pipeline35;
reg signed [15:0]    delay_pipeline36;
reg signed [15:0]    delay_pipeline37;
reg signed [15:0]    delay_pipeline38;
reg signed [15:0]    delay_pipeline39;
reg signed [15:0]    delay_pipeline40;
reg signed [15:0]    delay_pipeline41;
reg signed [15:0]    delay_pipeline42;
reg signed [15:0]    delay_pipeline43;
reg signed [15:0]    delay_pipeline44;
reg signed [15:0]    delay_pipeline45;
reg signed [15:0]    delay_pipeline46;
reg signed [15:0]    delay_pipeline47;
reg signed [15:0]    delay_pipeline48;
reg signed [15:0]    delay_pipeline49;
reg signed [15:0]    delay_pipeline50;
reg signed [15:0]    delay_pipeline51;
reg signed [15:0]    delay_pipeline52;
reg signed [15:0]    delay_pipeline53;
reg signed [15:0]    delay_pipeline54;
reg signed [15:0]    delay_pipeline55;
reg signed [15:0]    delay_pipeline56;
reg signed [15:0]    delay_pipeline57;
reg signed [15:0]    delay_pipeline58;
reg signed [15:0]    delay_pipeline59;
reg signed [15:0]    delay_pipeline60;
reg signed [15:0]    delay_pipeline61;
reg signed [15:0]    delay_pipeline62;
reg signed [15:0]    delay_pipeline63;
reg signed [15:0]    delay_pipeline64;
reg signed [15:0]    delay_pipeline65;
reg signed [15:0]    delay_pipeline66;
reg signed [15:0]    delay_pipeline67;
reg signed [15:0]    delay_pipeline68;
reg signed [15:0]    delay_pipeline69;
reg signed [15:0]    delay_pipeline70;
reg signed [15:0]    delay_pipeline71;
reg signed [15:0]    delay_pipeline72;
reg signed [15:0]    delay_pipeline73;
reg signed [15:0]    delay_pipeline74;
reg signed [15:0]    delay_pipeline75;
reg signed [15:0]    delay_pipeline76;
reg signed [15:0]    delay_pipeline77;
reg signed [15:0]    delay_pipeline78;
reg signed [15:0]    delay_pipeline79;
reg signed [15:0]    delay_pipeline80;
reg signed [15:0]    delay_pipeline81;
reg signed [15:0]    delay_pipeline82;
reg signed [15:0]    delay_pipeline83;
reg signed [15:0]    delay_pipeline84;
reg signed [15:0]    delay_pipeline85;
reg signed [15:0]    delay_pipeline86;
reg signed [15:0]    delay_pipeline87;
reg signed [15:0]    delay_pipeline88;
reg signed [15:0]    delay_pipeline89;
reg signed [15:0]    delay_pipeline90;
reg signed [15:0]    delay_pipeline91;
reg signed [15:0]    delay_pipeline92;
reg signed [15:0]    delay_pipeline93;
reg signed [15:0]    delay_pipeline94;
reg signed [15:0]    delay_pipeline95;
reg signed [15:0]    delay_pipeline96;
reg signed [15:0]    delay_pipeline97;
reg signed [15:0]    delay_pipeline98;
reg signed [15:0]    delay_pipeline99;
reg signed [15:0]    delay_pipeline100;
reg signed [15:0]    delay_pipeline101;
reg signed [15:0]    delay_pipeline102;
reg signed [15:0]    delay_pipeline103;
reg signed [15:0]    delay_pipeline104;
reg signed [15:0]    delay_pipeline105;
reg signed [15:0]    delay_pipeline106;
reg signed [15:0]    delay_pipeline107;
reg signed [15:0]    delay_pipeline108;
reg signed [15:0]    delay_pipeline109;
reg signed [15:0]    delay_pipeline110;
reg signed [15:0]    delay_pipeline111;
reg signed [15:0]    delay_pipeline112;
reg signed [15:0]    delay_pipeline113;
reg signed [15:0]    delay_pipeline114;
reg signed [15:0]    delay_pipeline115;
reg signed [15:0]    delay_pipeline116;
reg signed [15:0]    delay_pipeline117;
reg signed [15:0]    delay_pipeline118;
reg signed [15:0]    delay_pipeline119;
reg signed [15:0]    delay_pipeline120;
reg signed [15:0]    delay_pipeline121;
reg signed [15:0]    delay_pipeline122;
reg signed [15:0]    delay_pipeline123;
reg signed [15:0]    delay_pipeline124;
reg signed [15:0]    delay_pipeline125;
reg signed [15:0]    delay_pipeline126;
reg signed [15:0]    delay_pipeline127;
reg signed [15:0]    delay_pipeline128;
reg signed [15:0]    delay_pipeline129;
reg signed [15:0]    delay_pipeline130;
reg signed [15:0]    delay_pipeline131;
reg signed [15:0]    delay_pipeline132;
reg signed [15:0]    delay_pipeline133;
reg signed [15:0]    delay_pipeline134;
reg signed [15:0]    delay_pipeline135;
reg signed [15:0]    delay_pipeline136;
reg signed [15:0]    delay_pipeline137;
reg signed [15:0]    delay_pipeline138;
reg signed [15:0]    delay_pipeline139;
reg signed [15:0]    delay_pipeline140;
reg signed [15:0]    delay_pipeline141;
reg signed [15:0]    delay_pipeline142;
reg signed [15:0]    delay_pipeline143;
reg signed [15:0]    delay_pipeline144;
reg signed [15:0]    delay_pipeline145;
reg signed [15:0]    delay_pipeline146;
reg signed [15:0]    delay_pipeline147;
reg signed [15:0]    delay_pipeline148;
reg signed [15:0]    delay_pipeline149;
reg signed [15:0]    delay_pipeline150;
reg signed [15:0]    delay_pipeline151;
reg signed [15:0]    delay_pipeline152;
reg signed [15:0]    delay_pipeline153;
reg signed [15:0]    delay_pipeline154;
reg signed [15:0]    delay_pipeline155;
reg signed [15:0]    delay_pipeline156;
reg signed [15:0]    delay_pipeline157;
reg signed [15:0]    delay_pipeline158;
reg signed [15:0]    delay_pipeline159;
reg signed [15:0]    delay_pipeline160;
reg signed [15:0]    delay_pipeline161;
reg signed [15:0]    delay_pipeline162;
reg signed [15:0]    delay_pipeline163;
reg signed [15:0]    delay_pipeline164;
reg signed [15:0]    delay_pipeline165;
reg signed [15:0]    delay_pipeline166;
reg signed [15:0]    delay_pipeline167;
reg signed [15:0]    delay_pipeline168;
reg signed [15:0]    delay_pipeline169;
reg signed [15:0]    delay_pipeline170;
reg signed [15:0]    delay_pipeline171;
reg signed [15:0]    delay_pipeline172;
reg signed [15:0]    delay_pipeline173;
reg signed [15:0]    delay_pipeline174;
reg signed [15:0]    delay_pipeline175;
reg signed [15:0]    delay_pipeline176;
reg signed [15:0]    delay_pipeline177;
reg signed [15:0]    delay_pipeline178;
reg signed [15:0]    delay_pipeline179;
reg signed [15:0]    delay_pipeline180;
reg signed [15:0]    delay_pipeline181;
reg signed [15:0]    delay_pipeline182;
reg signed [15:0]    delay_pipeline183;
reg signed [15:0]    delay_pipeline184;
reg signed [15:0]    delay_pipeline185;
reg signed [15:0]    delay_pipeline186;
reg signed [15:0]    delay_pipeline187;
reg signed [15:0]    delay_pipeline188;
reg signed [15:0]    delay_pipeline189;
reg signed [15:0]    delay_pipeline190;
reg signed [15:0]    delay_pipeline191;
reg signed [15:0]    delay_pipeline192;
reg signed [15:0]    delay_pipeline193;
reg signed [15:0]    delay_pipeline194;
reg signed [15:0]    delay_pipeline195;
reg signed [15:0]    delay_pipeline196;
reg signed [15:0]    delay_pipeline197;
reg signed [15:0]    delay_pipeline198;
reg signed [15:0]    delay_pipeline199;
reg signed [15:0]    delay_pipeline200;
reg signed [15:0]    delay_pipeline201;
reg signed [15:0]    delay_pipeline202;
reg signed [15:0]    delay_pipeline203;
reg signed [15:0]    delay_pipeline204;
reg signed [15:0]    delay_pipeline205;
reg signed [15:0]    delay_pipeline206;
reg signed [15:0]    delay_pipeline207;
reg signed [15:0]    delay_pipeline208;
reg signed [15:0]    delay_pipeline209;
reg signed [15:0]    delay_pipeline210;
reg signed [15:0]    delay_pipeline211;
reg signed [15:0]    delay_pipeline212;
reg signed [15:0]    delay_pipeline213;
reg signed [15:0]    delay_pipeline214;
reg signed [15:0]    delay_pipeline215;
reg signed [15:0]    delay_pipeline216;
reg signed [15:0]    delay_pipeline217;
reg signed [15:0]    delay_pipeline218;
reg signed [15:0]    delay_pipeline219;
reg signed [15:0]    delay_pipeline220;
reg signed [15:0]    delay_pipeline221;
reg signed [15:0]    delay_pipeline222;
reg signed [15:0]    delay_pipeline223;
reg signed [15:0]    delay_pipeline224;
reg signed [15:0]    delay_pipeline225;
reg signed [15:0]    delay_pipeline226;
reg signed [15:0]    delay_pipeline227;
reg signed [15:0]    delay_pipeline228;
reg signed [15:0]    delay_pipeline229;
reg signed [15:0]    delay_pipeline230;
reg signed [15:0]    delay_pipeline231;
reg signed [15:0]    delay_pipeline232;
reg signed [15:0]    delay_pipeline233;
reg signed [15:0]    delay_pipeline234;
reg signed [15:0]    delay_pipeline235;
reg signed [15:0]    delay_pipeline236;
reg signed [15:0]    delay_pipeline237;
reg signed [15:0]    delay_pipeline238;
reg signed [15:0]    delay_pipeline239;
reg signed [15:0]    delay_pipeline240;
reg signed [15:0]    delay_pipeline241;
reg signed [15:0]    delay_pipeline242;
reg signed [15:0]    delay_pipeline243;
reg signed [15:0]    delay_pipeline244;
reg signed [15:0]    delay_pipeline245;
reg signed [15:0]    delay_pipeline246;
reg signed [15:0]    delay_pipeline247;
reg signed [15:0]    delay_pipeline248;
reg signed [15:0]    delay_pipeline249;
reg signed [15:0]    delay_pipeline250;
reg signed [15:0]    delay_pipeline251;
reg signed [15:0]    delay_pipeline252;
reg signed [15:0]    delay_pipeline253;
reg signed [15:0]    delay_pipeline254;
reg signed [15:0]    delay_pipeline255;


//滤波器系数,十六位量化后的结果,n阶滤波器有n个系数
reg signed [15:0] coeff0 ; 
reg signed [15:0] coeff1 ;
reg signed [15:0] coeff2 ;
reg signed [15:0] coeff3 ;
reg signed [15:0] coeff4 ;
reg signed [15:0] coeff5 ;
reg signed [15:0] coeff6 ;
reg signed [15:0] coeff7 ;
reg signed [15:0] coeff8 ;
reg signed [15:0] coeff9 ;
reg signed [15:0] coeff10 ; 
reg signed [15:0] coeff11 ;
reg signed [15:0] coeff12 ;
reg signed [15:0] coeff13 ;
reg signed [15:0] coeff14 ;
reg signed [15:0] coeff15 ;
reg signed [15:0] coeff16 ;
reg signed [15:0] coeff17 ;
reg signed [15:0] coeff18 ;
reg signed [15:0] coeff19 ;
reg signed [15:0] coeff20 ; 
reg signed [15:0] coeff21 ;
reg signed [15:0] coeff22 ;
reg signed [15:0] coeff23 ;
reg signed [15:0] coeff24 ;
reg signed [15:0] coeff25 ;
reg signed [15:0] coeff26 ;
reg signed [15:0] coeff27 ;
reg signed [15:0] coeff28 ;
reg signed [15:0] coeff29 ;
reg signed [15:0] coeff30 ; 
reg signed [15:0] coeff31 ;
reg signed [15:0] coeff32 ;
reg signed [15:0] coeff33 ;
reg signed [15:0] coeff34 ;
reg signed [15:0] coeff35 ;
reg signed [15:0] coeff36 ;
reg signed [15:0] coeff37 ;
reg signed [15:0] coeff38 ;
reg signed [15:0] coeff39 ;
reg signed [15:0] coeff40 ; 
reg signed [15:0] coeff41 ;
reg signed [15:0] coeff42 ;
reg signed [15:0] coeff43 ;
reg signed [15:0] coeff44 ;
reg signed [15:0] coeff45 ;
reg signed [15:0] coeff46 ;
reg signed [15:0] coeff47 ;
reg signed [15:0] coeff48 ;
reg signed [15:0] coeff49 ;
reg signed [15:0] coeff50 ; 
reg signed [15:0] coeff51 ;
reg signed [15:0] coeff52 ;
reg signed [15:0] coeff53 ;
reg signed [15:0] coeff54 ;
reg signed [15:0] coeff55 ;
reg signed [15:0] coeff56 ;
reg signed [15:0] coeff57 ;
reg signed [15:0] coeff58 ;
reg signed [15:0] coeff59 ;
reg signed [15:0] coeff60 ; 
reg signed [15:0] coeff61 ;
reg signed [15:0] coeff62 ;
reg signed [15:0] coeff63 ;
reg signed [15:0] coeff64 ;
reg signed [15:0] coeff65 ;
reg signed [15:0] coeff66 ;
reg signed [15:0] coeff67 ;
reg signed [15:0] coeff68 ;
reg signed [15:0] coeff69 ;
reg signed [15:0] coeff70 ; 
reg signed [15:0] coeff71 ;
reg signed [15:0] coeff72 ;
reg signed [15:0] coeff73 ;
reg signed [15:0] coeff74 ;
reg signed [15:0] coeff75 ;
reg signed [15:0] coeff76 ;
reg signed [15:0] coeff77 ;
reg signed [15:0] coeff78 ;
reg signed [15:0] coeff79 ;
reg signed [15:0] coeff80 ; 
reg signed [15:0] coeff81 ;
reg signed [15:0] coeff82 ;
reg signed [15:0] coeff83 ;
reg signed [15:0] coeff84 ;
reg signed [15:0] coeff85 ;
reg signed [15:0] coeff86 ;
reg signed [15:0] coeff87 ;
reg signed [15:0] coeff88 ;
reg signed [15:0] coeff89 ;
reg signed [15:0] coeff90 ; 
reg signed [15:0] coeff91 ;
reg signed [15:0] coeff92 ;
reg signed [15:0] coeff93 ;
reg signed [15:0] coeff94 ;
reg signed [15:0] coeff95 ;
reg signed [15:0] coeff96 ;
reg signed [15:0] coeff97 ;
reg signed [15:0] coeff98 ;
reg signed [15:0] coeff99 ;
reg signed [15:0] coeff100; 
reg signed [15:0] coeff101;
reg signed [15:0] coeff102;
reg signed [15:0] coeff103;
reg signed [15:0] coeff104;
reg signed [15:0] coeff105;
reg signed [15:0] coeff106;
reg signed [15:0] coeff107;
reg signed [15:0] coeff108;
reg signed [15:0] coeff109;
reg signed [15:0] coeff110; 
reg signed [15:0] coeff111;
reg signed [15:0] coeff112;
reg signed [15:0] coeff113;
reg signed [15:0] coeff114;
reg signed [15:0] coeff115;
reg signed [15:0] coeff116;
reg signed [15:0] coeff117;
reg signed [15:0] coeff118;
reg signed [15:0] coeff119;
reg signed [15:0] coeff120; 
reg signed [15:0] coeff121;
reg signed [15:0] coeff122;
reg signed [15:0] coeff123;
reg signed [15:0] coeff124;
reg signed [15:0] coeff125;
reg signed [15:0] coeff126;
reg signed [15:0] coeff127;
reg signed [15:0] coeff128;
reg signed [15:0] coeff129;
reg signed [15:0] coeff130; 
reg signed [15:0] coeff131;
reg signed [15:0] coeff132;
reg signed [15:0] coeff133;
reg signed [15:0] coeff134;
reg signed [15:0] coeff135;
reg signed [15:0] coeff136;
reg signed [15:0] coeff137;
reg signed [15:0] coeff138;
reg signed [15:0] coeff139;
reg signed [15:0] coeff140; 
reg signed [15:0] coeff141;
reg signed [15:0] coeff142;
reg signed [15:0] coeff143;
reg signed [15:0] coeff144;
reg signed [15:0] coeff145;
reg signed [15:0] coeff146;
reg signed [15:0] coeff147;
reg signed [15:0] coeff148;
reg signed [15:0] coeff149;
reg signed [15:0] coeff150; 
reg signed [15:0] coeff151;
reg signed [15:0] coeff152;
reg signed [15:0] coeff153;
reg signed [15:0] coeff154;
reg signed [15:0] coeff155;
reg signed [15:0] coeff156;
reg signed [15:0] coeff157;
reg signed [15:0] coeff158;
reg signed [15:0] coeff159;
reg signed [15:0] coeff160; 
reg signed [15:0] coeff161;
reg signed [15:0] coeff162;
reg signed [15:0] coeff163;
reg signed [15:0] coeff164;
reg signed [15:0] coeff165;
reg signed [15:0] coeff166;
reg signed [15:0] coeff167;
reg signed [15:0] coeff168;
reg signed [15:0] coeff169;
reg signed [15:0] coeff170; 
reg signed [15:0] coeff171;
reg signed [15:0] coeff172;
reg signed [15:0] coeff173;
reg signed [15:0] coeff174;
reg signed [15:0] coeff175;
reg signed [15:0] coeff176;
reg signed [15:0] coeff177;
reg signed [15:0] coeff178;
reg signed [15:0] coeff179;
reg signed [15:0] coeff180; 
reg signed [15:0] coeff181;
reg signed [15:0] coeff182;
reg signed [15:0] coeff183;
reg signed [15:0] coeff184;
reg signed [15:0] coeff185;
reg signed [15:0] coeff186;
reg signed [15:0] coeff187;
reg signed [15:0] coeff188;
reg signed [15:0] coeff189;
reg signed [15:0] coeff190; 
reg signed [15:0] coeff191;
reg signed [15:0] coeff192;
reg signed [15:0] coeff193;
reg signed [15:0] coeff194;
reg signed [15:0] coeff195;
reg signed [15:0] coeff196;
reg signed [15:0] coeff197;
reg signed [15:0] coeff198;
reg signed [15:0] coeff199;
reg signed [15:0] coeff200; 
reg signed [15:0] coeff201;
reg signed [15:0] coeff202;
reg signed [15:0] coeff203;
reg signed [15:0] coeff204;
reg signed [15:0] coeff205;
reg signed [15:0] coeff206;
reg signed [15:0] coeff207;
reg signed [15:0] coeff208;
reg signed [15:0] coeff209;
reg signed [15:0] coeff210; 
reg signed [15:0] coeff211;
reg signed [15:0] coeff212;
reg signed [15:0] coeff213;
reg signed [15:0] coeff214;
reg signed [15:0] coeff215;
reg signed [15:0] coeff216;
reg signed [15:0] coeff217;
reg signed [15:0] coeff218;
reg signed [15:0] coeff219;
reg signed [15:0] coeff220; 
reg signed [15:0] coeff221;
reg signed [15:0] coeff222;
reg signed [15:0] coeff223;
reg signed [15:0] coeff224;
reg signed [15:0] coeff225;
reg signed [15:0] coeff226;
reg signed [15:0] coeff227;
reg signed [15:0] coeff228;
reg signed [15:0] coeff229;
reg signed [15:0] coeff230; 
reg signed [15:0] coeff231;
reg signed [15:0] coeff232;
reg signed [15:0] coeff233;
reg signed [15:0] coeff234;
reg signed [15:0] coeff235;
reg signed [15:0] coeff236;
reg signed [15:0] coeff237;
reg signed [15:0] coeff238;
reg signed [15:0] coeff239;
reg signed [15:0] coeff240; 
reg signed [15:0] coeff241;
reg signed [15:0] coeff242;
reg signed [15:0] coeff243;
reg signed [15:0] coeff244;
reg signed [15:0] coeff245;
reg signed [15:0] coeff246;
reg signed [15:0] coeff247;
reg signed [15:0] coeff248;
reg signed [15:0] coeff249;
reg signed [15:0] coeff250; 
reg signed [15:0] coeff251;
reg signed [15:0] coeff252;
reg signed [15:0] coeff253;
reg signed [15:0] coeff254;
reg signed [15:0] coeff255;






//根据计数值控制该时刻的乘积对象
always @(posedge clk or negedge rst_n) begin
  if (rst_n == 1'b0) begin
    // reset
    count <= 9'b0;
  end
  else if (count == 9'b1_1111_1111) begin
    count <= 'd0;
    x_data_in_vld <= 1'b1;
  end
  else begin
    count <= count + 1'b1;
    x_data_in_vld <= 1'b0;
  end
end



//乘法器复用
assign mul_p = mul_a * mul_b;
assign x_e =  x_mul * eout;


always @(posedge clk or negedge rst_n) begin
  if (rst_n == 1'b0) begin
    // reset
    y_sum <= 'd0;
    eout <= 'd0;
  end
  else begin
    y_sum <= y_sum + mul_p;
    if(count == 9'b011111111) begin
      eout <= din - y_sum[X_W+W_W+1:Y_W];
    end
    else if (count > 9'b011111111) begin
    	y_sum <= 'd0;
    end
  end
end

//权重更新
always @(posedge clk or negedge rst_n) begin
	if (rst_n == 1'b0) begin
		// reset
		coeff0 <=   16'h0000; 
		coeff1 <=   16'h0000;
		coeff2 <=   16'h0000;
		coeff3 <=   16'h0000;
		coeff4 <=   16'h0000;
		coeff5 <=   16'h0000;
		coeff6 <=   16'h0000;
		coeff7 <=   16'h0000;
		coeff8 <=   16'h0000;
		coeff9 <=   16'h0000;
		coeff10 <=  16'h0000; 
		coeff11 <=  16'h0000;
		coeff12 <=  16'h0000;
		coeff13 <=  16'h0000;
		coeff14 <=  16'h0000;
		coeff15 <=  16'h0000;
		coeff16 <=  16'h0000;
		coeff17 <=  16'h0000;
		coeff18 <=  16'h0000;
		coeff19 <=  16'h0000;
		coeff20 <=  16'h0000; 
		coeff21 <=  16'h0000;
		coeff22 <=  16'h0000;
		coeff23 <=  16'h0000;
		coeff24 <=  16'h0000;
		coeff25 <=  16'h0000;
		coeff26 <=  16'h0000;
		coeff27 <=  16'h0000;
		coeff28 <=  16'h0000;
		coeff29 <=  16'h0000;
		coeff30 <=  16'h0000; 
		coeff31 <=  16'h0000;
		coeff32 <=  16'h0000;
		coeff33 <=  16'h0000;
		coeff34 <=  16'h0000;
		coeff35 <=  16'h0000;
		coeff36 <=  16'h0000;
		coeff37 <=  16'h0000;
		coeff38 <=  16'h0000;
		coeff39 <=  16'h0000;
		coeff40 <=  16'h0000; 
		coeff41 <=  16'h0000;
		coeff42 <=  16'h0000;
		coeff43 <=  16'h0000;
		coeff44 <=  16'h0000;
		coeff45 <=  16'h0000;
		coeff46 <=  16'h0000;
		coeff47 <=  16'h0000;
		coeff48 <=  16'h0000;
		coeff49 <=  16'h0000;
		coeff50 <=  16'h0000; 
		coeff51 <=  16'h0000;
		coeff52 <=  16'h0000;
		coeff53 <=  16'h0000;
		coeff54 <=  16'h0000;
		coeff55 <=  16'h0000;
		coeff56 <=  16'h0000;
		coeff57 <=  16'h0000;
		coeff58 <=  16'h0000;
		coeff59 <=  16'h0000;
		coeff60 <=  16'h0000; 
		coeff61 <=  16'h0000;
		coeff62 <=  16'h0000;
		coeff63 <=  16'h0000;
		coeff64 <=  16'h0000;
		coeff65 <=  16'h0000;
		coeff66 <=  16'h0000;
		coeff67 <=  16'h0000;
		coeff68 <=  16'h0000;
		coeff69 <=  16'h0000;
		coeff70 <=  16'h0000; 
		coeff71 <=  16'h0000;
		coeff72 <=  16'h0000;
		coeff73 <=  16'h0000;
		coeff74 <=  16'h0000;
		coeff75 <=  16'h0000;
		coeff76 <=  16'h0000;
		coeff77 <=  16'h0000;
		coeff78 <=  16'h0000;
		coeff79 <=  16'h0000;
		coeff80 <=  16'h0000; 
		coeff81 <=  16'h0000;
		coeff82 <=  16'h0000;
		coeff83 <=  16'h0000;
		coeff84 <=  16'h0000;
		coeff85 <=  16'h0000;
		coeff86 <=  16'h0000;
		coeff87 <=  16'h0000;
		coeff88 <=  16'h0000;
		coeff89 <=  16'h0000;
		coeff90 <=  16'h0000; 
		coeff91 <=  16'h0000;
		coeff92 <=  16'h0000;
		coeff93 <=  16'h0000;
		coeff94 <=  16'h0000;
		coeff95 <=  16'h0000;
		coeff96 <=  16'h0000;
		coeff97 <=  16'h0000;
		coeff98 <=  16'h0000;
		coeff99 <=  16'h0000;
		coeff100 <= 16'h0000; 
		coeff101 <= 16'h0000;
		coeff102 <= 16'h0000;
		coeff103 <= 16'h0000;
		coeff104 <= 16'h0000;
		coeff105 <= 16'h0000;
		coeff106 <= 16'h0000;
		coeff107 <= 16'h0000;
		coeff108 <= 16'h0000;
		coeff109 <= 16'h0000;
		coeff110 <= 16'h0000; 
		coeff111 <= 16'h0000;
		coeff112 <= 16'h0000;
		coeff113 <= 16'h0000;
		coeff114 <= 16'h0000;
		coeff115 <= 16'h0000;
		coeff116 <= 16'h0000;
		coeff117 <= 16'h0000;
		coeff118 <= 16'h0000;
		coeff119 <= 16'h0000;
		coeff120 <= 16'h0000; 
		coeff121 <= 16'h0000;
		coeff122 <= 16'h0000;
		coeff123 <= 16'h0000;
		coeff124 <= 16'h0000;
		coeff125 <= 16'h0000;
		coeff126 <= 16'h0000;
		coeff127 <= 16'h0000;
		coeff128 <= 16'h0000;
		coeff129 <= 16'h0000;
		coeff130 <= 16'h0000; 
		coeff131 <= 16'h0000;
		coeff132 <= 16'h0000;
		coeff133 <= 16'h0000;
		coeff134 <= 16'h0000;
		coeff135 <= 16'h0000;
		coeff136 <= 16'h0000;
		coeff137 <= 16'h0000;
		coeff138 <= 16'h0000;
		coeff139 <= 16'h0000;
		coeff140 <= 16'h0000; 
		coeff141 <= 16'h0000;
		coeff142 <= 16'h0000;
		coeff143 <= 16'h0000;
		coeff144 <= 16'h0000;
		coeff145 <= 16'h0000;
		coeff146 <= 16'h0000;
		coeff147 <= 16'h0000;
		coeff148 <= 16'h0000;
		coeff149 <= 16'h0000;
		coeff150 <= 16'h0000; 
		coeff151 <= 16'h0000;
		coeff152 <= 16'h0000;
		coeff153 <= 16'h0000;
		coeff154 <= 16'h0000;
		coeff155 <= 16'h0000;
		coeff156 <= 16'h0000;
		coeff157 <= 16'h0000;
		coeff158 <= 16'h0000;
		coeff159 <= 16'h0000;
		coeff160 <= 16'h0000; 
		coeff161 <= 16'h0000;
		coeff162 <= 16'h0000;
		coeff163 <= 16'h0000;
		coeff164 <= 16'h0000;
		coeff165 <= 16'h0000;
		coeff166 <= 16'h0000;
		coeff167 <= 16'h0000;
		coeff168 <= 16'h0000;
		coeff169 <= 16'h0000;
		coeff170 <= 16'h0000; 
		coeff171 <= 16'h0000;
		coeff172 <= 16'h0000;
		coeff173 <= 16'h0000;
		coeff174 <= 16'h0000;
		coeff175 <= 16'h0000;
		coeff176 <= 16'h0000;
		coeff177 <= 16'h0000;
		coeff178 <= 16'h0000;
		coeff179 <= 16'h0000;
		coeff180 <= 16'h0000; 
		coeff181 <= 16'h0000;
		coeff182 <= 16'h0000;
		coeff183 <= 16'h0000;
		coeff184 <= 16'h0000;
		coeff185 <= 16'h0000;
		coeff186 <= 16'h0000;
		coeff187 <= 16'h0000;
		coeff188 <= 16'h0000;
		coeff189 <= 16'h0000;
		coeff190 <= 16'h0000; 
		coeff191 <= 16'h0000;
		coeff192 <= 16'h0000;
		coeff193 <= 16'h0000;
		coeff194 <= 16'h0000;
		coeff195 <= 16'h0000;
		coeff196 <= 16'h0000;
		coeff197 <= 16'h0000;
		coeff198 <= 16'h0000;
		coeff199 <= 16'h0000;
		coeff200 <= 16'h0000; 
		coeff201 <= 16'h0000;
		coeff202 <= 16'h0000;
		coeff203 <= 16'h0000;
		coeff204 <= 16'h0000;
		coeff205 <= 16'h0000;
		coeff206 <= 16'h0000;
		coeff207 <= 16'h0000;
		coeff208 <= 16'h0000;
		coeff209 <= 16'h0000;
		coeff210 <= 16'h0000; 
		coeff211 <= 16'h0000;
		coeff212 <= 16'h0000;
		coeff213 <= 16'h0000;
		coeff214 <= 16'h0000;
		coeff215 <= 16'h0000;
		coeff216 <= 16'h0000;
		coeff217 <= 16'h0000;
		coeff218 <= 16'h0000;
		coeff219 <= 16'h0000;
		coeff220 <= 16'h0000; 
		coeff221 <= 16'h0000;
		coeff222 <= 16'h0000;
		coeff223 <= 16'h0000;
		coeff224 <= 16'h0000;
		coeff225 <= 16'h0000;
		coeff226 <= 16'h0000;
		coeff227 <= 16'h0000;
		coeff228 <= 16'h0000;
		coeff229 <= 16'h0000;
		coeff230 <= 16'h0000; 
		coeff231 <= 16'h0000;
		coeff232 <= 16'h0000;
		coeff233 <= 16'h0000;
		coeff234 <= 16'h0000;
		coeff235 <= 16'h0000;
		coeff236 <= 16'h0000;
		coeff237 <= 16'h0000;
		coeff238 <= 16'h0000;
		coeff239 <= 16'h0000;
		coeff240 <= 16'h0000; 
		coeff241 <= 16'h0000;
		coeff242 <= 16'h0000;
		coeff243 <= 16'h0000;
		coeff244 <= 16'h0000;
		coeff245 <= 16'h0000;
		coeff246 <= 16'h0000;
		coeff247 <= 16'h0000;
		coeff248 <= 16'h0000;
		coeff249 <= 16'h0000;
		coeff250 <= 16'h0000; 
		coeff251 <= 16'h0000;
		coeff252 <= 16'h0000;
		coeff253 <= 16'h0000;
		coeff254 <= 16'h0000;
		coeff255 <= 16'h0000;
			x_mul <= 'd0;
end
else  begin
	case(count) 
	9'b100000000 : begin
		x_mul <= xin;
		coeff0 <= coeff0 + x_e[X_W+E_W-1:W_W];
	end
    9'b100000001 : begin
    	x_mul <= delay_pipeline1;
       coeff1 <= coeff1 + x_e[X_W+E_W-1:W_W];
    end
    9'b100000010 : begin
    x_mul <= delay_pipeline2;
       coeff2 <= coeff2 + x_e[X_W+E_W-1:W_W];
    end
    9'b100000011 : begin
   	 x_mul <= delay_pipeline3;
        coeff3 <= coeff3 + x_e[X_W+E_W-1:W_W];
    end
    9'b100000100 : begin
   	 x_mul <= delay_pipeline4;
        coeff4 <= coeff4 + x_e[X_W+E_W-1:W_W];
    end
    9'b100000101 : begin
    	x_mul <= delay_pipeline5;
 	 	coeff5 <= coeff5 + x_e[X_W+E_W-1:W_W];
    end
    9'b100000110 : begin
    	x_mul <= delay_pipeline6;
        coeff6 <= coeff6 + x_e[X_W+E_W-1:W_W];
    end
    9'b100000111 : begin
    	x_mul <= delay_pipeline7;
		coeff7 <= coeff7 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001000 : begin
    	x_mul <= delay_pipeline8;
        coeff8 <= coeff8 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001001 : begin
    	x_mul <= delay_pipeline9;
        coeff9 <= coeff9 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001010 : begin
    	x_mul <= delay_pipeline10;
        coeff10 <= coeff10 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001011 : begin
    	x_mul <= delay_pipeline11;
        coeff11 <= coeff11 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001100 : begin
    	x_mul <= delay_pipeline12;
        coeff12 <= coeff12 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001101 : begin
    	x_mul <= delay_pipeline13;
        coeff13 <= coeff13 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001110 : begin
    	x_mul <= delay_pipeline14;
       coeff14 <= coeff14 + x_e[X_W+E_W-1:W_W];
    end
    9'b100001111 : begin
    	x_mul <= delay_pipeline15;
        coeff15 <= coeff15 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010000 : begin
    	x_mul <= delay_pipeline16;
        coeff16 <= coeff16 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010001 : begin
    	x_mul <= delay_pipeline17;
        coeff17 <= coeff17 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010010 : begin
    	x_mul <= delay_pipeline18;
        coeff18 <= coeff18 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010011 : begin
    	x_mul <= delay_pipeline19;
        coeff19 <= coeff19 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010100 : begin
    	x_mul <= delay_pipeline20;
        coeff20 <= coeff20 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010101 : begin
    	x_mul <= delay_pipeline21;
        coeff21 <= coeff21 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010110 : begin
    	x_mul <= delay_pipeline22;
        coeff22 <= coeff22 + x_e[X_W+E_W-1:W_W];
    end
    9'b100010111 : begin
    	x_mul <= delay_pipeline23;
        coeff23 <= coeff23 + x_e[X_W+E_W-1:W_W];
    end
    9'b100011000 : begin
    	x_mul <= delay_pipeline24;
       coeff24 <= coeff24 + x_e[X_W+E_W-1:W_W];
    end
        9'b100011001 : begin
        	x_mul <= delay_pipeline25;
        coeff25 <= coeff25 + x_e[X_W+E_W-1:W_W];
    end
    9'b100011010 : begin
    	x_mul <= delay_pipeline26;
        coeff26 <= coeff26 + x_e[X_W+E_W-1:W_W];
    end
    9'b100011011 : begin
    	x_mul <= delay_pipeline27;
        coeff27 <= coeff27 + x_e[X_W+E_W-1:W_W];
    end
    9'b100011100 : begin
    	x_mul <= delay_pipeline28;
        coeff28 <= coeff28 + x_e[X_W+E_W-1:W_W];
    end
    9'b100011101 : begin
    	x_mul <= delay_pipeline29;
        coeff29 <= coeff29 + x_e[X_W+E_W-1:W_W];
    end
    9'b100011110 : begin
   		 x_mul <= delay_pipeline30;
        coeff30 <= coeff30 + x_e[X_W+E_W-1:W_W];
    end
    9'b100011111 : begin
    	x_mul <= delay_pipeline31;
       coeff31 <= coeff31 + x_e[X_W+E_W-1:W_W];
    end
    9'b100100000 : begin
    	x_mul <= delay_pipeline32;
        coeff32 <= coeff32 + x_e[X_W+E_W-1:W_W];
    end
    9'b100100001 : begin
   		 x_mul <= delay_pipeline33;
        coeff33  <= coeff33  + x_e[X_W+E_W-1:W_W];
    end
    9'b100100010 : begin
    	x_mul <= delay_pipeline34;
        coeff34  <= coeff34  + x_e[X_W+E_W-1:W_W];
    end
        9'b100100011 : begin
        x_mul <= delay_pipeline35;
        coeff35  <= coeff35  + x_e[X_W+E_W-1:W_W];
    end
    9'b100100100 : begin
    	x_mul <= delay_pipeline36;
        coeff36  <= coeff36  + x_e[X_W+E_W-1:W_W];
    end
    9'b100100101 : begin
    	x_mul <= delay_pipeline37;
        coeff37  <= coeff37  + x_e[X_W+E_W-1:W_W];
    end
    9'b100100110 : begin
    	x_mul <= delay_pipeline38;
        coeff38  <= coeff38  + x_e[X_W+E_W-1:W_W];
    end
    9'b100100111 : begin
    	x_mul <= delay_pipeline39;
        coeff39  <= coeff39  + x_e[X_W+E_W-1:W_W];
    end
    9'b100101000 : begin
    	x_mul <= delay_pipeline40;
        coeff40  <= coeff40  + x_e[X_W+E_W-1:W_W];
    end
    9'b100101001 : begin
    	x_mul <= delay_pipeline41;
        coeff41  <= coeff41  + x_e[X_W+E_W-1:W_W];
    end
    9'b100101010 : begin
    	x_mul <= delay_pipeline42;
       coeff42  <= coeff42  + x_e[X_W+E_W-1:W_W];
    end
    9'b100101011 : begin
    	x_mul <= delay_pipeline43;
        coeff43  <= coeff43  + x_e[X_W+E_W-1:W_W];
    end
    9'b100101100 : begin
    	x_mul <= delay_pipeline44;
        coeff44  <= coeff44  + x_e[X_W+E_W-1:W_W];
    end
        9'b100101101 : begin
        	x_mul <= delay_pipeline45;
       coeff45  <= coeff45  + x_e[X_W+E_W-1:W_W];
    end
    9'b100101110 : begin
    	x_mul <= delay_pipeline46;
        coeff46  <= coeff46  + x_e[X_W+E_W-1:W_W];
    end
    9'b100101111 : begin
    	x_mul <= delay_pipeline47;
       coeff47  <= coeff47  + x_e[X_W+E_W-1:W_W];
    end
    9'b100110000 : begin
    	x_mul <= delay_pipeline48;
        coeff48  <= coeff48  + x_e[X_W+E_W-1:W_W];
    end
    9'b100110001 : begin
    	x_mul <= delay_pipeline49;
        coeff49  <= coeff49  + x_e[X_W+E_W-1:W_W];
    end
    9'b100110010 : begin
    	x_mul <= delay_pipeline50;
       coeff50  <= coeff50  + x_e[X_W+E_W-1:W_W];
    end
    9'b100110011 : begin
    	x_mul <= delay_pipeline51;
      coeff51  <= coeff51  + x_e[X_W+E_W-1:W_W];
    end
    9'b100110100 : begin
    	x_mul <= delay_pipeline52;

       coeff52  <= coeff52  + x_e[X_W+E_W-1:W_W];
    end
    9'b100110101 : begin
    	x_mul <= delay_pipeline53;
     coeff53  <= coeff53  + x_e[X_W+E_W-1:W_W];
    end
    9'b100110110 : begin
    	x_mul <= delay_pipeline54;
        coeff54  <= coeff54  + x_e[X_W+E_W-1:W_W];
    end
        9'b100110111 : begin
        	x_mul <= delay_pipeline55;
        coeff55  <= coeff55  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111000 : begin
    	x_mul <= delay_pipeline56;
       coeff56  <= coeff56  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111001 : begin
    	x_mul <= delay_pipeline57;
        coeff57  <= coeff57  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111010 : begin
    	x_mul <= delay_pipeline58;
       coeff58  <= coeff58  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111011 : begin
    	x_mul <= delay_pipeline59;
        coeff59  <= coeff59  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111100 : begin
    	x_mul <= delay_pipeline60;
        coeff60  <= coeff60  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111101 : begin
    	x_mul <= delay_pipeline61;
        coeff61  <= coeff61  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111110 : begin
    	x_mul <= delay_pipeline62;
        coeff62  <= coeff62  + x_e[X_W+E_W-1:W_W];
    end
    9'b100111111 : begin
    	x_mul <= delay_pipeline63;
        coeff63  <= coeff63  + x_e[X_W+E_W-1:W_W];
    end
    9'b101000000 : begin
    	x_mul <= delay_pipeline64;
       coeff64  <= coeff64  + x_e[X_W+E_W-1:W_W];
    end
        9'b101000001 : begin
        	x_mul <= delay_pipeline65;
        coeff65  <= coeff65  + x_e[X_W+E_W-1:W_W];
    end
    9'b101000010 : begin
    	x_mul <= delay_pipeline66;
        coeff66  <= coeff66  + x_e[X_W+E_W-1:W_W];
    end
    9'b101000011 : begin
    	x_mul <= delay_pipeline67;
        coeff67  <= coeff67  + x_e[X_W+E_W-1:W_W];
    end
    9'b101000100 : begin
    	x_mul <= delay_pipeline68;
       coeff68  <= coeff68  + x_e[X_W+E_W-1:W_W];
    end
    9'b101000101 : begin
    	x_mul <= delay_pipeline69;
       coeff69  <= coeff69  + x_e[X_W+E_W-1:W_W];
    end
    9'b101000110 : begin
    	x_mul <= delay_pipeline70;
        coeff70  <= coeff70  + x_e[X_W+E_W-1:W_W];
    end
    9'b101000111 : begin
    	x_mul <= delay_pipeline71;
        coeff71  <= coeff71  + x_e[X_W+E_W-1:W_W];
    end
    9'b101001000 : begin
    	x_mul <= delay_pipeline72;
        coeff72  <= coeff72  + x_e[X_W+E_W-1:W_W];
    end
    9'b101001001 : begin
    	x_mul <= delay_pipeline73;
       coeff73  <= coeff73  + x_e[X_W+E_W-1:W_W];
    end
    9'b101001010 : begin
    	x_mul <= delay_pipeline74;
        coeff74  <= coeff74  + x_e[X_W+E_W-1:W_W];
    end
        9'b101001011 : begin
        	x_mul <= delay_pipeline75;
       coeff75  <= coeff75  + x_e[X_W+E_W-1:W_W];
    end
    9'b101001100 : begin
    	x_mul <= delay_pipeline76;
        coeff76  <= coeff76  + x_e[X_W+E_W-1:W_W];
    end
    9'b101001101 : begin
    	x_mul <= delay_pipeline77;
       coeff77  <= coeff77  + x_e[X_W+E_W-1:W_W];
    end
    9'b101001110 : begin
    	x_mul <= delay_pipeline78;
       coeff78  <= coeff78  + x_e[X_W+E_W-1:W_W];
    end
    9'b101001111 : begin
    	x_mul <= delay_pipeline79;
        coeff79  <= coeff79  + x_e[X_W+E_W-1:W_W];
    end
    9'b101010000 : begin
    	x_mul <= delay_pipeline80;
       coeff80  <= coeff80  + x_e[X_W+E_W-1:W_W];
    end
    9'b101010001 : begin
    	x_mul <= delay_pipeline81;
       coeff81  <= coeff81  + x_e[X_W+E_W-1:W_W];
    end
    9'b101010010 : begin
    	x_mul <= delay_pipeline82;
    	  coeff82  <= coeff82  + x_e[X_W+E_W-1:W_W];
    end
    9'b101010011 : begin
    	x_mul <= delay_pipeline83;
   		 coeff83  <= coeff83  + x_e[X_W+E_W-1:W_W];
    end
    9'b101010100 : begin
    	x_mul <= delay_pipeline84;
       coeff84  <= coeff84  + x_e[X_W+E_W-1:W_W];
    end
        9'b101010101 : begin
        	x_mul <= delay_pipeline85;
       coeff85  <= coeff85  + x_e[X_W+E_W-1:W_W];
    end
    9'b101010110 : begin
    	x_mul <= delay_pipeline86;
        coeff86  <= coeff86  + x_e[X_W+E_W-1:W_W];
    end
    9'b101010111 : begin
    	x_mul <= delay_pipeline87;
        coeff87  <= coeff87  + x_e[X_W+E_W-1:W_W];
    end
    9'b101011000 : begin
    	x_mul <= delay_pipeline88;
        coeff88  <= coeff88  + x_e[X_W+E_W-1:W_W];
    end
    9'b101011001 : begin
    	x_mul <= delay_pipeline89;
        coeff89  <= coeff89  + x_e[X_W+E_W-1:W_W];
    end
    9'b101011010 : begin
    	x_mul <= delay_pipeline90;
        coeff90  <= coeff90  + x_e[X_W+E_W-1:W_W];
    end
    9'b101011011 : begin
    	x_mul <= delay_pipeline91;
        coeff91  <= coeff91  + x_e[X_W+E_W-1:W_W];
    end
    9'b101011100 : begin
    	x_mul <= delay_pipeline92;
        coeff92  <= coeff92  + x_e[X_W+E_W-1:W_W];
    end
    9'b101011101 : begin
    	x_mul <= delay_pipeline93;
        coeff93  <= coeff93  + x_e[X_W+E_W-1:W_W];
    end
    9'b101011110 : begin
    	x_mul <= delay_pipeline94;
        coeff94  <= coeff94  + x_e[X_W+E_W-1:W_W];
    end
        9'b101011111 : begin
        	x_mul <= delay_pipeline95;
        coeff95  <= coeff95  + x_e[X_W+E_W-1:W_W];
    end
    9'b101100000 : begin
    	x_mul <= delay_pipeline96;
        coeff96  <= coeff96  + x_e[X_W+E_W-1:W_W];
    end
    9'b101100001 : begin
    	x_mul <= delay_pipeline97;
        coeff97  <= coeff97  + x_e[X_W+E_W-1:W_W];
    end
    9'b101100010 : begin
    	x_mul <= delay_pipeline98;
        coeff98  <= coeff98  + x_e[X_W+E_W-1:W_W];
    end
    9'b101100011 : begin
    	x_mul <= delay_pipeline99;
        coeff99  <= coeff99  + x_e[X_W+E_W-1:W_W];
    end
    9'b101100100 : begin
    	x_mul <= delay_pipeline100;
        coeff100 <= coeff100 + x_e[X_W+E_W-1:W_W];
    end
    9'b101100101 : begin
    	x_mul <= delay_pipeline101;
        coeff101 <= coeff101 + x_e[X_W+E_W-1:W_W];
    end
    9'b101100110 : begin
    	x_mul <= delay_pipeline102;
        coeff102 <= coeff102 + x_e[X_W+E_W-1:W_W];
    end
    9'b101100111 : begin
    	x_mul <= delay_pipeline103;
        coeff103 <= coeff103 + x_e[X_W+E_W-1:W_W];
    end
    9'b101101000 : begin
    	x_mul <= delay_pipeline104;
        coeff104 <= coeff104 + x_e[X_W+E_W-1:W_W];
    end
        9'b101101001 : begin
        	x_mul <= delay_pipeline105;
       coeff105 <= coeff105 + x_e[X_W+E_W-1:W_W];
    end
    9'b101101010 : begin
    	x_mul <= delay_pipeline106;
        coeff106 <= coeff106 + x_e[X_W+E_W-1:W_W];
    end
    9'b101101011 : begin
    	x_mul <= delay_pipeline107;
        coeff107 <= coeff107 + x_e[X_W+E_W-1:W_W];
    end
    9'b101101100 : begin
    	x_mul <= delay_pipeline108;
        coeff108 <= coeff108 + x_e[X_W+E_W-1:W_W];
    end
    9'b101101101 : begin
    	x_mul <= delay_pipeline109;
       coeff109 <= coeff109 + x_e[X_W+E_W-1:W_W];
    end
    9'b101101110 : begin
    	x_mul <= delay_pipeline110;
        coeff110 <= coeff110 + x_e[X_W+E_W-1:W_W];
    end
    9'b101101111 : begin
    	x_mul <= delay_pipeline111;
        coeff111 <= coeff111 + x_e[X_W+E_W-1:W_W];
    end
    9'b101110000 : begin
    	x_mul <= delay_pipeline112;
        coeff112 <= coeff112 + x_e[X_W+E_W-1:W_W];
    end
    9'b101110001 : begin
   		 x_mul <= delay_pipeline113;
       coeff113 <= coeff113 + x_e[X_W+E_W-1:W_W];
    end
    9'b101110010 : begin
    	x_mul <= delay_pipeline114;
        coeff114 <= coeff114 + x_e[X_W+E_W-1:W_W];
    end
        9'b101110011 : begin
        x_mul <= delay_pipeline115;
        coeff115 <= coeff115 + x_e[X_W+E_W-1:W_W];
    end
    9'b101110100 : begin
   		 x_mul <= delay_pipeline116;
       coeff116 <= coeff116 + x_e[X_W+E_W-1:W_W];
    end
    9'b101110101 : begin
   		 x_mul <= delay_pipeline117;
        coeff117 <= coeff117 + x_e[X_W+E_W-1:W_W];
    end
    9'b101110110 : begin
  		  x_mul <= delay_pipeline118;
        coeff118 <= coeff118 + x_e[X_W+E_W-1:W_W];
    end
    9'b101110111 : begin
    	x_mul <= delay_pipeline119;
        coeff119 <= coeff119 + x_e[X_W+E_W-1:W_W];
    end
    9'b101111000 : begin
    	x_mul <= delay_pipeline120;
        coeff120 <= coeff120 + x_e[X_W+E_W-1:W_W];
    end
    9'b101111001 : begin
    	x_mul <= delay_pipeline121;
        coeff121 <= coeff121 + x_e[X_W+E_W-1:W_W];
    end
    9'b101111010 : begin
    	x_mul <= delay_pipeline122;
        coeff122 <= coeff122 + x_e[X_W+E_W-1:W_W];
    end
    9'b101111011 : begin
    	x_mul <= delay_pipeline123;
        coeff123 <= coeff123 + x_e[X_W+E_W-1:W_W];
    end
    9'b101111100 : begin
    	x_mul <= delay_pipeline124;
        coeff124 <= coeff124 + x_e[X_W+E_W-1:W_W];
    end
        9'b101111101 : begin
        	x_mul <= delay_pipeline125;
        coeff125 <= coeff125 + x_e[X_W+E_W-1:W_W];
    end
    9'b101111110 : begin
    	x_mul <= delay_pipeline126;
        coeff126 <= coeff126 + x_e[X_W+E_W-1:W_W];
    end
    9'b101111111 : begin
    	x_mul <= delay_pipeline127;
        coeff127 <= coeff127 + x_e[X_W+E_W-1:W_W];
    end
    9'b110000000 : begin
    	x_mul <= delay_pipeline128;
        coeff128 <= coeff128 + x_e[X_W+E_W-1:W_W];
    end
    9'b110000001 : begin
    	x_mul <= delay_pipeline129;
        coeff129 <= coeff129 + x_e[X_W+E_W-1:W_W];
    end
    9'b110000010 : begin
    	x_mul <= delay_pipeline130;
        coeff130 <= coeff130 + x_e[X_W+E_W-1:W_W];
    end
    9'b110000011 : begin
    	x_mul <= delay_pipeline131;
       coeff131 <= coeff131 + x_e[X_W+E_W-1:W_W];
    end
    9'b110000100 : begin
    	x_mul <= delay_pipeline132;
        coeff132 <= coeff132 + x_e[X_W+E_W-1:W_W];
    end
    9'b110000101 : begin
    	x_mul <= delay_pipeline133;
        coeff133 <= coeff133 + x_e[X_W+E_W-1:W_W];
    end
    9'b110000110 : begin
    	x_mul <= delay_pipeline134;
        coeff134 <= coeff134 + x_e[X_W+E_W-1:W_W];
    end
        9'b110000111 : begin
        	x_mul <= delay_pipeline135;
       coeff135 <= coeff135 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001000 : begin
    	x_mul <= delay_pipeline136;
        coeff136 <= coeff136 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001001 : begin
    	x_mul <= delay_pipeline137;
        coeff137 <= coeff137 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001010 : begin
    	x_mul <= delay_pipeline138;
        coeff138 <= coeff138 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001011 : begin
    	x_mul <= delay_pipeline139;
        coeff139 <= coeff139 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001100 : begin
    	x_mul <= delay_pipeline140;
        coeff140 <= coeff140 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001101 : begin
    	x_mul <= delay_pipeline141;
       coeff141 <= coeff141 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001110 : begin
    	x_mul <= delay_pipeline142;
        coeff142 <= coeff142 + x_e[X_W+E_W-1:W_W];
    end
    9'b110001111 : begin
    	x_mul <= delay_pipeline143;
       coeff143 <= coeff143 + x_e[X_W+E_W-1:W_W];
    end
    9'b110010000 : begin
    	x_mul <= delay_pipeline144;
        coeff144 <= coeff144 + x_e[X_W+E_W-1:W_W];
    end
        9'b110010001 : begin
        	x_mul <= delay_pipeline145;
        coeff145 <= coeff145 + x_e[X_W+E_W-1:W_W];
    end
    9'b110010010 : begin
    	x_mul <= delay_pipeline146;
        coeff146 <= coeff146 + x_e[X_W+E_W-1:W_W];
    end
    9'b110010011 : begin
    	x_mul <= delay_pipeline147;
        coeff147 <= coeff147 + x_e[X_W+E_W-1:W_W];
    end
    9'b110010100 : begin
    	x_mul <= delay_pipeline148;
        coeff148 <= coeff148 + x_e[X_W+E_W-1:W_W];
    end
    9'b110010101 : begin
    	x_mul <= delay_pipeline149;
        coeff149 <= coeff149 + x_e[X_W+E_W-1:W_W];
    end
    9'b110010110 : begin
    	x_mul <= delay_pipeline150;
        coeff150 <= coeff150 + x_e[X_W+E_W-1:W_W];
    end
    9'b110010111 : begin
    	x_mul <= delay_pipeline151;
        coeff151 <= coeff151 + x_e[X_W+E_W-1:W_W];
    end
    9'b110011000 : begin
    	x_mul <= delay_pipeline152;
        coeff152 <= coeff152 + x_e[X_W+E_W-1:W_W];
    end
    9'b110011001 : begin
    	x_mul <= delay_pipeline153;
        coeff153 <= coeff153 + x_e[X_W+E_W-1:W_W];
    end
    9'b110011010 : begin
    	x_mul <= delay_pipeline154;
        coeff154 <= coeff154 + x_e[X_W+E_W-1:W_W];
    end
        9'b110011011 : begin
        	x_mul <= delay_pipeline155;
        coeff155 <= coeff155 + x_e[X_W+E_W-1:W_W];
    end
    9'b110011100 : begin
    	x_mul <= delay_pipeline156;
        coeff156 <= coeff156 + x_e[X_W+E_W-1:W_W];
    end
    9'b110011101 : begin
    	x_mul <= delay_pipeline157;
        coeff157 <= coeff157 + x_e[X_W+E_W-1:W_W];
    end
    9'b110011110 : begin
    	x_mul <= delay_pipeline158;
        coeff158 <= coeff158 + x_e[X_W+E_W-1:W_W];
    end
    9'b110011111 : begin
    	x_mul <= delay_pipeline159;
        coeff159 <= coeff159 + x_e[X_W+E_W-1:W_W];
    end
    9'b110100000 : begin
    	x_mul <= delay_pipeline160;
        coeff160 <= coeff160 + x_e[X_W+E_W-1:W_W];
    end
    9'b110100001 : begin
    	x_mul <= delay_pipeline161;
        coeff161 <= coeff161 + x_e[X_W+E_W-1:W_W];
    end
    9'b110100010 : begin
    	x_mul <= delay_pipeline162;
        coeff162 <= coeff162 + x_e[X_W+E_W-1:W_W];
    end
    9'b110100011 : begin
    	x_mul <= delay_pipeline163;
        coeff163 <= coeff163 + x_e[X_W+E_W-1:W_W];
    end
    9'b110100100 : begin
    	x_mul <= delay_pipeline164;
        coeff164 <= coeff164 + x_e[X_W+E_W-1:W_W];
    end
        9'b110100101 : begin
        x_mul <= delay_pipeline165;
        coeff165 <= coeff165 + x_e[X_W+E_W-1:W_W];
    end
    9'b110100110 : begin
    	x_mul <= delay_pipeline166;
        coeff166 <= coeff166 + x_e[X_W+E_W-1:W_W];
    end
    9'b110100111 : begin
    	x_mul <= delay_pipeline167;
        coeff167 <= coeff167 + x_e[X_W+E_W-1:W_W];
    end
    9'b110101000 : begin
    	x_mul <= delay_pipeline168;
        coeff168 <= coeff168 + x_e[X_W+E_W-1:W_W];
    end
    9'b110101001 : begin
    	x_mul <= delay_pipeline169;
        coeff169 <= coeff169 + x_e[X_W+E_W-1:W_W];
    end
    9'b110101010 : begin
    	x_mul <= delay_pipeline170;
        coeff170 <= coeff170 + x_e[X_W+E_W-1:W_W];
    end
    9'b110101011 : begin
    	x_mul <= delay_pipeline171;
        coeff171 <= coeff171 + x_e[X_W+E_W-1:W_W];
    end
    9'b110101100 : begin
    	x_mul <= delay_pipeline172;
        coeff172 <= coeff172 + x_e[X_W+E_W-1:W_W];
    end
    9'b110101101 : begin
    	x_mul <= delay_pipeline173;
        coeff173 <= coeff173 + x_e[X_W+E_W-1:W_W];
    end
    9'b110101110 : begin
    	x_mul <= delay_pipeline174;
        coeff174 <= coeff174 + x_e[X_W+E_W-1:W_W];
    end
        9'b110101111 : begin
        	x_mul <= delay_pipeline175;
        coeff175 <= coeff175 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110000 : begin
    	x_mul <= delay_pipeline176;
        coeff176 <= coeff176 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110001 : begin
    	x_mul <= delay_pipeline177;
        coeff177 <= coeff177 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110010 : begin
    	x_mul <= delay_pipeline178;
        coeff178 <= coeff178 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110011 : begin
    	x_mul <= delay_pipeline179;
        coeff179 <= coeff179 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110100 : begin
    	x_mul <= delay_pipeline180;
       coeff180 <= coeff180 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110101 : begin
    	x_mul <= delay_pipeline181;
        coeff181 <= coeff181 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110110 : begin
    	x_mul <= delay_pipeline182;
        coeff182 <= coeff182 + x_e[X_W+E_W-1:W_W];
    end
    9'b110110111 : begin
    	x_mul <= delay_pipeline183;
        coeff183 <= coeff183 + x_e[X_W+E_W-1:W_W];
    end
    9'b110111000 : begin
    	x_mul <= delay_pipeline184;
        coeff184 <= coeff184 + x_e[X_W+E_W-1:W_W];
    end
        9'b110111001 : begin
        	x_mul <= delay_pipeline185;
        coeff185 <= coeff185 + x_e[X_W+E_W-1:W_W];
    end
    9'b110111010 : begin
    	x_mul <= delay_pipeline186;
        coeff186 <= coeff186 + x_e[X_W+E_W-1:W_W];
    end
    9'b110111011 : begin
    	x_mul <= delay_pipeline187;
        coeff187 <= coeff187 + x_e[X_W+E_W-1:W_W];
    end
    9'b110111100 : begin
    	x_mul <= delay_pipeline188;
        coeff188 <= coeff188 + x_e[X_W+E_W-1:W_W];
    end
    9'b110111101 : begin
    	x_mul <= delay_pipeline189;
        coeff189 <= coeff189 + x_e[X_W+E_W-1:W_W];
    end
    9'b110111110 : begin
    	x_mul <= delay_pipeline190;
        coeff190 <= coeff190 + x_e[X_W+E_W-1:W_W];
    end
    9'b110111111 : begin
    	x_mul <= delay_pipeline191;
        coeff191 <= coeff191 + x_e[X_W+E_W-1:W_W];
    end
    9'b111000000 : begin
    	x_mul <= delay_pipeline192;
        coeff192 <= coeff192 + x_e[X_W+E_W-1:W_W];
    end
    9'b111000001 : begin
    	x_mul <= delay_pipeline193;
        coeff193 <= coeff193 + x_e[X_W+E_W-1:W_W];
    end
    9'b111000010 : begin
    	x_mul <= delay_pipeline194;
        coeff194 <= coeff194 + x_e[X_W+E_W-1:W_W];
    end
        9'b111000011 : begin
        	x_mul <= delay_pipeline195;
       coeff195 <= coeff195 + x_e[X_W+E_W-1:W_W];
    end
    9'b111000100 : begin
    	x_mul <= delay_pipeline196;
        coeff196 <= coeff196 + x_e[X_W+E_W-1:W_W];
    end
    9'b111000101 : begin
    	x_mul <= delay_pipeline197;
        coeff197 <= coeff197 + x_e[X_W+E_W-1:W_W];
    end
    9'b111000110 : begin
    	x_mul <= delay_pipeline198;
        coeff198 <= coeff198 + x_e[X_W+E_W-1:W_W];
    end
    9'b111000111 : begin
    	x_mul <= delay_pipeline199;
        coeff199 <= coeff199 + x_e[X_W+E_W-1:W_W];
    end
    9'b111001000 : begin
    	x_mul <= delay_pipeline200;
       coeff200 <= coeff200 + x_e[X_W+E_W-1:W_W];
    end
    9'b111001001 : begin
    	x_mul <= delay_pipeline201;
        coeff201 <= coeff201 + x_e[X_W+E_W-1:W_W];
    end
    9'b111001010 : begin
    	x_mul <= delay_pipeline202;
       coeff202 <= coeff202 + x_e[X_W+E_W-1:W_W];
    end
    9'b111001011 : begin
    	x_mul <= delay_pipeline203;
        coeff203 <= coeff203 + x_e[X_W+E_W-1:W_W];
    end
    9'b111001100 : begin
    	x_mul <= delay_pipeline204;
       coeff204 <= coeff204 + x_e[X_W+E_W-1:W_W];
    end
        9'b111001101 : begin
        	x_mul <= delay_pipeline205;
        coeff205 <= coeff205 + x_e[X_W+E_W-1:W_W];
    end
    9'b111001110 : begin
    	x_mul <= delay_pipeline206;
       coeff206 <= coeff206 + x_e[X_W+E_W-1:W_W];
    end
    9'b111001111 : begin
    	x_mul <= delay_pipeline207;
        coeff207 <= coeff207 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010000 : begin
    	x_mul <= delay_pipeline208;
        coeff208 <= coeff208 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010001 : begin
    	x_mul <= delay_pipeline209;
        coeff209 <= coeff209 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010010 : begin
    	x_mul <= delay_pipeline210;
       coeff210 <= coeff210 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010011 : begin
    	x_mul <= delay_pipeline211;
        coeff211 <= coeff211 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010100 : begin
    	x_mul <= delay_pipeline211;
        coeff212 <= coeff212 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010101 : begin
    	x_mul <= delay_pipeline213;
        coeff213 <= coeff213 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010110 : begin
    	x_mul <= delay_pipeline214;
       coeff214 <= coeff214 + x_e[X_W+E_W-1:W_W];
    end
    9'b111010111 : begin
    	x_mul <= delay_pipeline215;
        coeff215 <= coeff215 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011000 : begin
    	x_mul <= delay_pipeline216;
        coeff216 <= coeff216 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011001 : begin
    	x_mul <= delay_pipeline217;
        coeff217 <= coeff217 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011010 : begin
    	x_mul <= delay_pipeline218;
        coeff218 <= coeff218 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011011 : begin
    	x_mul <= delay_pipeline219;
        coeff219 <= coeff219 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011100 : begin
    	x_mul <= delay_pipeline220;
        coeff220 <= coeff220 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011101 : begin
    	x_mul <= delay_pipeline221;
       coeff221 <= coeff221 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011110 : begin
    	x_mul <= delay_pipeline222;
        coeff222 <= coeff222 + x_e[X_W+E_W-1:W_W];
    end
    9'b111011111 : begin
    	x_mul <= delay_pipeline223;
        coeff223 <= coeff223 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100000 : begin
    	x_mul <= delay_pipeline224;
        coeff224 <= coeff224 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100001 : begin
    	x_mul <= delay_pipeline225;
        coeff225 <= coeff225 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100010 : begin
    	x_mul <= delay_pipeline226;
        coeff226 <= coeff226 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100011 : begin
    	x_mul <= delay_pipeline227;
      	coeff227 <= coeff227 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100100 : begin
    	x_mul <= delay_pipeline228;
       coeff228 <= coeff228 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100101 : begin
    	x_mul <= delay_pipeline229;
        coeff229 <= coeff229 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100110 : begin
    	x_mul <= delay_pipeline230;
        coeff230 <= coeff230 + x_e[X_W+E_W-1:W_W];
    end
    9'b111100111 : begin
    	x_mul <= delay_pipeline231;
       coeff231 <= coeff231 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101000 : begin
    	x_mul <= delay_pipeline232;
       coeff232 <= coeff232 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101001 : begin
    	x_mul <= delay_pipeline233;
        coeff233 <= coeff233 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101010 : begin
    	x_mul <= delay_pipeline234;
       coeff234 <= coeff234 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101011 : begin
    	x_mul <= delay_pipeline235;
        coeff235 <= coeff235 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101100 : begin
    	x_mul <= delay_pipeline236;
       coeff236 <= coeff236 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101101 : begin
    	x_mul <= delay_pipeline237;
        coeff237 <= coeff237 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101110 : begin
    	x_mul <= delay_pipeline238;
       coeff238 <= coeff238 + x_e[X_W+E_W-1:W_W];
    end
    9'b111101111 : begin
    	x_mul <= delay_pipeline239;
      coeff239 <= coeff239 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110000 : begin
    	x_mul <= delay_pipeline240;
       coeff240 <= coeff240 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110001 : begin
    	x_mul <= delay_pipeline241;
      coeff241 <= coeff241 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110010 : begin
    	x_mul <= delay_pipeline242;
       coeff242 <= coeff242 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110011 : begin
    	x_mul <= delay_pipeline243;
        coeff243 <= coeff243 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110100 : begin
    	x_mul <= delay_pipeline244;
        coeff244 <= coeff244 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110101 : begin
    	x_mul <= delay_pipeline245;
        coeff245 <= coeff245 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110110 : begin
    	x_mul <= delay_pipeline246;
        coeff246 <= coeff246 + x_e[X_W+E_W-1:W_W];
    end
    9'b111110111: begin
    	x_mul <= delay_pipeline247;
        coeff247 <= coeff247 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111000 : begin
    	x_mul <= delay_pipeline248;
        coeff248 <= coeff248 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111001 : begin
    	x_mul <= delay_pipeline249;
        coeff249 <= coeff249 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111010 : begin
    	x_mul <= delay_pipeline250;
        coeff250 <= coeff250 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111011: begin
    	x_mul <= delay_pipeline251;
    	coeff251 <= coeff251 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111100: begin
    	x_mul <= delay_pipeline252;
    	coeff252 <= coeff252 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111101: begin
    	x_mul <= delay_pipeline253;
    	coeff253 <= coeff253 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111110: begin
    	x_mul <= delay_pipeline254;
    	coeff254 <= coeff254 + x_e[X_W+E_W-1:W_W];
    end
    9'b111111111: begin
    	x_mul <= delay_pipeline255;
    	coeff255 <= coeff255 + x_e[X_W+E_W-1:W_W];
    end
		endcase
	end
end


always @(posedge clk or negedge rst_n) begin
  if (rst_n == 1'b0) begin
    // reset
    mul_a <= 'd0;
    mul_b <= 'd0;
  end
  else  begin
    case(count)
        9'b000000000 : begin
          mul_a <= coeff0;
          mul_b <= xin; 
        end
        9'b000000001 : begin
          mul_a <= coeff1;
          mul_b <= delay_pipeline1;
        end
        9'b000000010 : begin
          mul_a <= coeff2;
          mul_b <= delay_pipeline2;
        end
        9'b000000011 : begin
          mul_a <= coeff3;
          mul_b <= delay_pipeline3;
        end
        9'b000000100 : begin
          mul_a <= coeff4;
          mul_b <= delay_pipeline4;
        end
        9'b000000101 : begin
          mul_a <= coeff5;
          mul_b <= delay_pipeline5;
        end
        9'b000000110 : begin
          mul_a <= coeff6;
          mul_b <= delay_pipeline6;
        end
        9'b000000111 : begin
          mul_a <= coeff7;
          mul_b <= delay_pipeline7;
        end
        9'b000001000 : begin
          mul_a <= coeff8;
          mul_b <= delay_pipeline8;
        end
        9'b000001001 : begin
          mul_a <= coeff9;
          mul_b <= delay_pipeline9;
        end
        9'b000001010 : begin
          mul_a <= coeff10;
          mul_b <= delay_pipeline10;
        end
        9'b000001011 : begin
          mul_a <= coeff11;
          mul_b <= delay_pipeline11;
        end
        9'b000001100 : begin
          mul_a <= coeff12;
          mul_b <= delay_pipeline12;
        end
        9'b000001101 : begin
          mul_a <= coeff13;
          mul_b <= delay_pipeline13;
        end
        9'b000001110 : begin
            mul_a <= coeff14;
            mul_b <= delay_pipeline14;
        end
        9'b000001111 : begin
            mul_a <= coeff15;
            mul_b <= delay_pipeline15;
        end
        9'b000010000 : begin
            mul_a <= coeff16;
            mul_b <= delay_pipeline16;
        end
        9'b000010001 : begin
            mul_a <= coeff17;
            mul_b <= delay_pipeline17;
        end
        9'b000010010 : begin
            mul_a <= coeff18;
            mul_b <= delay_pipeline18;
        end
        9'b000010011 : begin
            mul_a <= coeff19;
            mul_b <= delay_pipeline19;
        end
        9'b000010100 : begin
            mul_a <= coeff20;
            mul_b <= delay_pipeline20;
        end
        9'b000010101 : begin
            mul_a <= coeff21;
            mul_b <= delay_pipeline21;
        end
        9'b000010110 : begin
            mul_a <= coeff22;
            mul_b <= delay_pipeline22;
        end
        9'b000010111 : begin
            mul_a <= coeff23;
            mul_b <= delay_pipeline23;
        end
        9'b000011000 : begin
            mul_a <= coeff24;
            mul_b <= delay_pipeline24;
        end
        9'b000011001 : begin
            mul_a <= coeff25;
            mul_b <= delay_pipeline25;
        end
        9'b000011010 : begin
            mul_a <= coeff26;
            mul_b <= delay_pipeline26;
        end
        9'b000011011 : begin
            mul_a <= coeff27;
            mul_b <= delay_pipeline27;
        end
        9'b000011100 : begin
            mul_a <= coeff28;
            mul_b <= delay_pipeline28;
        end
        9'b000011101 : begin
            mul_a <= coeff29;
            mul_b <= delay_pipeline29;
        end
        9'b000011110 : begin
            mul_a <= coeff30;
            mul_b <= delay_pipeline30;
        end
        9'b000011111 : begin
            mul_a <= coeff31;
            mul_b <= delay_pipeline31;
        end
        9'b000100000 : begin
            mul_a <= coeff32;
            mul_b <= delay_pipeline32;
        end
        9'b000100001 : begin
            mul_a <= coeff33;
            mul_b <= delay_pipeline33;
        end
         9'b000100010 : begin
            mul_a <= coeff34;
            mul_b <= delay_pipeline34;
        end
        9'b000100011 : begin
            mul_a <= coeff35;
            mul_b <= delay_pipeline35;
        end
        9'b000100100 : begin
            mul_a <= coeff36;
            mul_b <= delay_pipeline36;
        end
        9'b000100101 : begin
            mul_a <= coeff37;
            mul_b <= delay_pipeline37;
        end
         9'b000100110 : begin
            mul_a <= coeff38;
            mul_b <= delay_pipeline38;
        end
        9'b000100111 : begin
            mul_a <= coeff39;
            mul_b <= delay_pipeline39;
        end
        9'b000101000 : begin
            mul_a <= coeff40;
            mul_b <= delay_pipeline40;
        end
        9'b000101001 : begin
            mul_a <= coeff41;
            mul_b <= delay_pipeline41;
        end
        9'b000101010 : begin
            mul_a <= coeff42;
            mul_b <= delay_pipeline42;
        end
        9'b000101011 : begin
            mul_a <= coeff43;
            mul_b <= delay_pipeline43;
        end
        9'b000101100 : begin
            mul_a <= coeff44;
            mul_b <= delay_pipeline44;
        end
        9'b000101101 : begin
            mul_a <= coeff45;
            mul_b <= delay_pipeline45;
        end
        9'b000101110 : begin
            mul_a <= coeff46;
            mul_b <= delay_pipeline46;
        end
        9'b000101111 : begin
            mul_a <= coeff47;
            mul_b <= delay_pipeline47;
        end
        9'b000110000 : begin
            mul_a <= coeff48;
            mul_b <= delay_pipeline48;
        end
        9'b000110001 : begin
            mul_a <= coeff49;
            mul_b <= delay_pipeline49;
        end
        9'b000110010 : begin
            mul_a <= coeff50;
            mul_b <= delay_pipeline50;
        end
        9'b000110011 : begin
            mul_a <= coeff51;
            mul_b <= delay_pipeline51;
        end
        9'b000110100 : begin
            mul_a <= coeff52;
            mul_b <= delay_pipeline52;
        end
        9'b000110101 : begin
            mul_a <= coeff53;
            mul_b <= delay_pipeline53;
        end
        9'b000110110 : begin
            mul_a <= coeff54;
            mul_b <= delay_pipeline54;
        end
         9'b000110111 : begin
            mul_a <= coeff55;
            mul_b <= delay_pipeline55;
        end
        9'b000111000 : begin
            mul_a <= coeff56;
            mul_b <= delay_pipeline56;
        end
        9'b000111001 : begin
            mul_a <= coeff57;
            mul_b <= delay_pipeline57;
        end
        9'b000111010 : begin
            mul_a <= coeff58;
            mul_b <= delay_pipeline58;
        end
        9'b000111011 : begin
            mul_a <= coeff59;
            mul_b <= delay_pipeline59;
        end
        9'b000111100 : begin
            mul_a <= coeff60;
            mul_b <= delay_pipeline60;
        end
        9'b000111101 : begin
            mul_a <= coeff61;
            mul_b <= delay_pipeline61;
        end
        9'b000111110 : begin
            mul_a <= coeff62;
            mul_b <= delay_pipeline62;
        end
        9'b000111111 : begin
            mul_a <= coeff63;
            mul_b <= delay_pipeline63;
        end
        9'b001000000 : begin
            mul_a <= coeff64;
            mul_b <= delay_pipeline64;
        end
        9'b001000001 : begin
            mul_a <= coeff65;
            mul_b <= delay_pipeline65;
        end
        9'b001000010 : begin
            mul_a <= coeff66;
            mul_b <= delay_pipeline66;
        end
        9'b001000011 : begin
            mul_a <= coeff67;
            mul_b <= delay_pipeline67;
        end
        9'b001000100 : begin
            mul_a <= coeff68;
            mul_b <= delay_pipeline68;
        end
        9'b001000101 : begin
            mul_a <= coeff69;
            mul_b <= delay_pipeline69;
        end
        9'b001000110 : begin
            mul_a <= coeff70;
            mul_b <= delay_pipeline70;
        end
        9'b001000111 : begin
            mul_a <= coeff71;
            mul_b <= delay_pipeline71;
        end
        9'b001001000 : begin
            mul_a <= coeff72;
            mul_b <= delay_pipeline72;
        end
        9'b001001001 : begin
            mul_a <= coeff73;
            mul_b <= delay_pipeline73;
        end
        9'b001001010 : begin
            mul_a <= coeff74;
            mul_b <= delay_pipeline74;
        end
        9'b001001011 : begin
            mul_a <= coeff75;
            mul_b <= delay_pipeline75;
        end
        9'b001001100 : begin
            mul_a <= coeff76;
            mul_b <= delay_pipeline76;
        end
        9'b001001101 : begin
            mul_a <= coeff77;
            mul_b <= delay_pipeline77;
        end
        9'b001001110 : begin
            mul_a <= coeff78;
            mul_b <= delay_pipeline78;
        end
        9'b001001111 : begin
            mul_a <= coeff79;
            mul_b <= delay_pipeline79;
        end
        9'b001010000 : begin
            mul_a <= coeff80;
            mul_b <= delay_pipeline80;
        end
        9'b001010001 : begin
            mul_a <= coeff81;
            mul_b <= delay_pipeline81;
        end
        9'b001010010 : begin
            mul_a <= coeff82;
            mul_b <= delay_pipeline82;
        end
        9'b001010011 : begin
            mul_a <= coeff83;
            mul_b <= delay_pipeline83;
        end
        9'b001010100 : begin
            mul_a <= coeff84;
            mul_b <= delay_pipeline84;
        end
        9'b001010101 : begin
            mul_a <= coeff85;
            mul_b <= delay_pipeline85;
        end
        9'b001010110 : begin
            mul_a <= coeff86;
            mul_b <= delay_pipeline86;
        end
        9'b001010111 : begin
            mul_a <= coeff87;
            mul_b <= delay_pipeline87;
        end
        9'b001011000 : begin
            mul_a <= coeff88;
            mul_b <= delay_pipeline88;
        end
        9'b001011001 : begin
            mul_a <= coeff89;
            mul_b <= delay_pipeline89;
        end
        9'b001011010 : begin
            mul_a <= coeff90;
            mul_b <= delay_pipeline90;
        end
        9'b001011011 : begin
            mul_a <= coeff91;
            mul_b <= delay_pipeline91;
        end
        9'b001011100 : begin
            mul_a <= coeff92;
            mul_b <= delay_pipeline92;
        end
        9'b001011101 : begin
            mul_a <= coeff93;
            mul_b <= delay_pipeline93;
        end
        9'b001011110 : begin
            mul_a <= coeff94;
            mul_b <= delay_pipeline94;
        end
        9'b001011111 : begin
            mul_a <= coeff95;
            mul_b <= delay_pipeline95;
        end
        9'b001100000 : begin
            mul_a <= coeff96;
            mul_b <= delay_pipeline96;
        end
        9'b001100001 : begin
            mul_a <= coeff97;
            mul_b <= delay_pipeline97;
        end
        9'b001100010 : begin
            mul_a <= coeff98;
            mul_b <= delay_pipeline98;
        end
        9'b001100011 : begin
            mul_a <= coeff99;
            mul_b <= delay_pipeline99;
        end
        9'b001100100 : begin
            mul_a <= coeff100;
            mul_b <= delay_pipeline100;
        end
        9'b001100101 : begin
            mul_a <= coeff101;
            mul_b <= delay_pipeline101;
        end
        9'b001100110 : begin
            mul_a <= coeff102;
            mul_b <= delay_pipeline102;
        end
        9'b001100111 : begin
            mul_a <= coeff103;
            mul_b <= delay_pipeline103;
        end
        9'b001101000 : begin
            mul_a <= coeff104;
            mul_b <= delay_pipeline104;
        end
        9'b001101001 : begin
            mul_a <= coeff105;
            mul_b <= delay_pipeline105;
        end
        9'b001101010 : begin
            mul_a <= coeff106;
            mul_b <= delay_pipeline106;
        end
        9'b001101011 : begin
            mul_a <= coeff107;
            mul_b <= delay_pipeline107;
        end
        9'b001101100 : begin
            mul_a <= coeff108;
            mul_b <= delay_pipeline108;
        end
        9'b001101101 : begin
            mul_a <= coeff109;
            mul_b <= delay_pipeline109;
        end
        9'b001101110 : begin
            mul_a <= coeff110;
            mul_b <= delay_pipeline110;
        end
        9'b001101111 : begin
            mul_a <= coeff111;
            mul_b <= delay_pipeline111;
        end
        9'b001110000 : begin
            mul_a <= coeff112;
            mul_b <= delay_pipeline112;
        end
        9'b001110001 : begin
            mul_a <= coeff113;
            mul_b <= delay_pipeline113;
        end
        9'b001110010 : begin
            mul_a <= coeff114;
            mul_b <= delay_pipeline114;
        end
        9'b001110011 : begin
            mul_a <= coeff115;
            mul_b <= delay_pipeline115;
        end
        9'b001110100 : begin
            mul_a <= coeff116;
            mul_b <= delay_pipeline116;
        end
        9'b001110101 : begin
            mul_a <= coeff117;
            mul_b <= delay_pipeline117;
        end
        9'b001110110 : begin
            mul_a <= coeff118;
            mul_b <= delay_pipeline118;
        end
        9'b001110111 : begin
            mul_a <= coeff119;
            mul_b <= delay_pipeline119;
        end
        9'b001111000 : begin
            mul_a <= coeff120;
            mul_b <= delay_pipeline120;
        end
        9'b001111001 : begin
            mul_a <= coeff121;
            mul_b <= delay_pipeline121;
        end
        9'b001111010 : begin
            mul_a <= coeff122;
            mul_b <= delay_pipeline122;
        end
        9'b001111011 : begin
            mul_a <= coeff123;
            mul_b <= delay_pipeline123;
        end
        9'b001111100 : begin
            mul_a <= coeff124;
            mul_b <= delay_pipeline124;
        end
        9'b001111101 : begin
            mul_a <= coeff125;
            mul_b <= delay_pipeline125;
        end
        9'b001111110 : begin
            mul_a <= coeff126;
            mul_b <= delay_pipeline126;
        end
        9'b001111111 : begin
            mul_a <= coeff127;
            mul_b <= delay_pipeline127;
        end
        9'b010000000 : begin
            mul_a <= coeff128;
            mul_b <= delay_pipeline128;
        end
        9'b010000001 : begin
            mul_a <= coeff129;
            mul_b <= delay_pipeline129;
        end
        9'b010000010 : begin
            mul_a <= coeff130;
            mul_b <= delay_pipeline130;
        end
        9'b010000011 : begin
            mul_a <= coeff131;
            mul_b <= delay_pipeline131;
        end
        9'b010000100 : begin
            mul_a <= coeff132;
            mul_b <= delay_pipeline132;
        end
        9'b010000101 : begin
            mul_a <= coeff133;
            mul_b <= delay_pipeline133;
        end
        9'b010000110 : begin
            mul_a <= coeff134;
            mul_b <= delay_pipeline134;
        end
         9'b010000111 : begin
            mul_a <= coeff135;
            mul_b <= delay_pipeline135;
        end
        9'b010001000 : begin
            mul_a <= coeff136;
            mul_b <= delay_pipeline136;
        end
        9'b010001001 : begin
            mul_a <= coeff137;
            mul_b <= delay_pipeline137;
        end
        9'b010001010 : begin
            mul_a <= coeff138;
            mul_b <= delay_pipeline138;
        end
        9'b010001011 : begin
            mul_a <= coeff139;
            mul_b <= delay_pipeline139;
        end
        9'b010001100 : begin
            mul_a <= coeff140;
            mul_b <= delay_pipeline140;
        end
        9'b010001101 : begin
            mul_a <= coeff141;
            mul_b <= delay_pipeline141;
        end
        9'b010001110 : begin
            mul_a <= coeff142;
            mul_b <= delay_pipeline142;
        end
        9'b010001111 : begin
            mul_a <= coeff143;
            mul_b <= delay_pipeline143;
        end
        9'b010010000 : begin
            mul_a <= coeff144;
            mul_b <= delay_pipeline144;
        end
         9'b010010001 : begin
            mul_a <= coeff145;
            mul_b <= delay_pipeline145;
        end
        9'b010010010 : begin
            mul_a <= coeff146;
            mul_b <= delay_pipeline146;
        end
        9'b010010011 : begin
            mul_a <= coeff147;
            mul_b <= delay_pipeline147;
        end
        9'b010010100 : begin
            mul_a <= coeff148;
            mul_b <= delay_pipeline148;
        end
        9'b010010101 : begin
            mul_a <= coeff149;
            mul_b <= delay_pipeline149;
        end
        9'b010010110 : begin
            mul_a <= coeff150;
            mul_b <= delay_pipeline150;
        end
        9'b010010111 : begin
            mul_a <= coeff151;
            mul_b <= delay_pipeline151;
        end
        9'b010011000 : begin
            mul_a <= coeff152;
            mul_b <= delay_pipeline152;
        end
        9'b010011001 : begin
            mul_a <= coeff153;
            mul_b <= delay_pipeline153;
        end
        9'b010011010 : begin
            mul_a <= coeff154;
            mul_b <= delay_pipeline154;
        end
        9'b010011011 : begin
            mul_a <= coeff155;
            mul_b <= delay_pipeline155;
        end
        9'b010011100 : begin
            mul_a <= coeff156;
            mul_b <= delay_pipeline156;
        end
        9'b010011101 : begin
            mul_a <= coeff157;
            mul_b <= delay_pipeline157;
        end
        9'b010011110 : begin
            mul_a <= coeff158;
            mul_b <= delay_pipeline158;
        end
        9'b010011111 : begin
            mul_a <= coeff159;
            mul_b <= delay_pipeline159;
        end
        9'b010100000 : begin
            mul_a <= coeff160;
            mul_b <= delay_pipeline160;
        end
        9'b010100001 : begin
            mul_a <= coeff161;
            mul_b <= delay_pipeline161;
        end
        9'b010100010 : begin
            mul_a <= coeff162;
            mul_b <= delay_pipeline162;
        end
        9'b010100011 : begin
            mul_a <= coeff163;
            mul_b <= delay_pipeline163;
        end
        9'b010100100 : begin
            mul_a <= coeff164;
            mul_b <= delay_pipeline164;
        end
        9'b010100101 : begin
            mul_a <= coeff165;
            mul_b <= delay_pipeline165;
        end
        9'b010100110 : begin
            mul_a <= coeff166;
            mul_b <= delay_pipeline166;
        end
        9'b010100111 : begin
            mul_a <= coeff167;
            mul_b <= delay_pipeline167;
        end
        9'b010101000 : begin
            mul_a <= coeff168;
            mul_b <= delay_pipeline168;
        end
        9'b010101001 : begin
            mul_a <= coeff169;
            mul_b <= delay_pipeline169;
        end
        9'b010101010 : begin
            mul_a <= coeff170;
            mul_b <= delay_pipeline170;
        end
        9'b010101011 : begin
            mul_a <= coeff171;
            mul_b <= delay_pipeline171;
        end
        9'b010101100 : begin
            mul_a <= coeff172;
            mul_b <= delay_pipeline172;
        end
        9'b010101101 : begin
            mul_a <= coeff173;
            mul_b <= delay_pipeline173;
        end
        9'b010101110 : begin
            mul_a <= coeff174;
            mul_b <= delay_pipeline174;
        end
        9'b010101111 : begin
            mul_a <= coeff175;
            mul_b <= delay_pipeline175;
        end
        9'b010110000 : begin
            mul_a <= coeff176;
            mul_b <= delay_pipeline176;
        end
        9'b010110001 : begin
            mul_a <= coeff177;
            mul_b <= delay_pipeline177;
        end
        9'b010110010 : begin
            mul_a <= coeff178;
            mul_b <= delay_pipeline178;
        end
        9'b010110011 : begin
            mul_a <= coeff179;
            mul_b <= delay_pipeline179;
        end
        9'b010110100 : begin
            mul_a <= coeff180;
            mul_b <= delay_pipeline180;
        end
        9'b010110101 : begin
            mul_a <= coeff181;
            mul_b <= delay_pipeline181;
        end
        9'b010110110 : begin
            mul_a <= coeff182;
            mul_b <= delay_pipeline182;
        end
        9'b010110111 : begin
            mul_a <= coeff183;
            mul_b <= delay_pipeline183;
        end
        9'b010111000 : begin
            mul_a <= coeff184;
            mul_b <= delay_pipeline184;
        end
        9'b010111001 : begin
            mul_a <= coeff185;
            mul_b <= delay_pipeline185;
        end
        9'b010111010 : begin
            mul_a <= coeff186;
            mul_b <= delay_pipeline186;
        end
        9'b010111011 : begin
            mul_a <= coeff187;
            mul_b <= delay_pipeline187;
        end
        9'b010111100 : begin
            mul_a <= coeff188;
            mul_b <= delay_pipeline188;
        end
        9'b010111101 : begin
            mul_a <= coeff189;
            mul_b <= delay_pipeline189;
        end
        9'b010111110 : begin
            mul_a <= coeff190;
            mul_b <= delay_pipeline190;
        end
        9'b010111111 : begin
            mul_a <= coeff191;
            mul_b <= delay_pipeline191;
        end
        9'b011000000 : begin
            mul_a <= coeff192;
            mul_b <= delay_pipeline192;
        end
        9'b011000001 : begin
            mul_a <= coeff193;
            mul_b <= delay_pipeline193;
        end
        9'b011000010 : begin
            mul_a <= coeff194;
            mul_b <= delay_pipeline194;
        end
        9'b011000011 : begin
            mul_a <= coeff195;
            mul_b <= delay_pipeline195;
        end
        9'b011000100 : begin
            mul_a <= coeff196;
            mul_b <= delay_pipeline196;
        end
        9'b011000101 : begin
            mul_a <= coeff197;
            mul_b <= delay_pipeline197;
        end
        9'b011000110 : begin
            mul_a <= coeff198;
            mul_b <= delay_pipeline198;
        end
        9'b011000111 : begin
            mul_a <= coeff199;
            mul_b <= delay_pipeline199;
        end
        9'b011001000 : begin
            mul_a <= coeff200;
            mul_b <= delay_pipeline200;
        end
        9'b011001001 : begin
            mul_a <= coeff201;
            mul_b <= delay_pipeline201;
        end
        9'b011001010 : begin
            mul_a <= coeff202;
            mul_b <= delay_pipeline202;
        end
        9'b011001011 : begin
            mul_a <= coeff203;
            mul_b <= delay_pipeline203;
        end
        9'b011001100 : begin
            mul_a <= coeff204;
            mul_b <= delay_pipeline204;
        end
        9'b011001101 : begin
            mul_a <= coeff205;
            mul_b <= delay_pipeline205;
        end
        9'b011001110 : begin
             mul_a <= coeff206;
             mul_b <= delay_pipeline206;
        end
        9'b011001111 : begin
            mul_a <= coeff207;
            mul_b <= delay_pipeline207;
        end
        9'b011010000 : begin
            mul_a <= coeff208;
            mul_b <= delay_pipeline208;
        end
        9'b011010001 : begin
            mul_a <= coeff209;
            mul_b <= delay_pipeline209;
        end
        9'b011010010 : begin
            mul_a <= coeff210;
            mul_b <= delay_pipeline210;
        end
        9'b011010011 : begin
            mul_a <= coeff211;
            mul_b <= delay_pipeline211;
        end
        9'b011010100 : begin
            mul_a <= coeff212;
            mul_b <= delay_pipeline212;
        end
        9'b011010101 : begin
            mul_a <= coeff213;
            mul_b <= delay_pipeline213;
        end
        9'b011010110 : begin
            mul_a <= coeff214;
            mul_b <= delay_pipeline214;
        end
        9'b011010111 : begin
            mul_a <= coeff215;
            mul_b <= delay_pipeline215;
        end
        9'b011011000 : begin
            mul_a <= coeff216;
            mul_b <= delay_pipeline216;
        end
        9'b011011001 : begin
            mul_a <= coeff217;
            mul_b <= delay_pipeline217;
        end
        9'b011011010 : begin
            mul_a <= coeff218;
            mul_b <= delay_pipeline218;
        end
        9'b011011011 : begin
            mul_a <= coeff219;
            mul_b <= delay_pipeline219;
        end
        9'b011011100 : begin
            mul_a <= coeff220;
            mul_b <= delay_pipeline220;
        end
        9'b011011101 : begin
            mul_a <= coeff221;
            mul_b <= delay_pipeline221;
        end
        9'b011011110 : begin
            mul_a <= coeff222;
            mul_b <= delay_pipeline222;
        end
        9'b011011111 : begin
            mul_a <= coeff223;
            mul_b <= delay_pipeline223;
        end
        9'b011100000 : begin
            mul_a <= coeff224;
            mul_b <= delay_pipeline224;
        end
        9'b011100001 : begin
            mul_a <= coeff225;
            mul_b <= delay_pipeline225;
        end
        9'b011100010 : begin
            mul_a <= coeff226;
            mul_b <= delay_pipeline226;
        end
        9'b011100011 : begin
            mul_a <= coeff227;
            mul_b <= delay_pipeline227;
        end
        9'b011100100 : begin
            mul_a <= coeff228;
            mul_b <= delay_pipeline228;
        end
        9'b011100101 : begin
            mul_a <= coeff229;
            mul_b <= delay_pipeline229;
        end
        9'b011100110 : begin
            mul_a <= coeff230;
            mul_b <= delay_pipeline230;
        end
        9'b011100111 : begin
            mul_a <= coeff231;
            mul_b <= delay_pipeline231;
        end
        9'b011101000 : begin
            mul_a <= coeff232;
            mul_b <= delay_pipeline232;
        end
        9'b011101001 : begin
            mul_a <= coeff233;
            mul_b <= delay_pipeline233;
        end
        9'b011101010 : begin
            mul_a <= coeff234;
            mul_b <= delay_pipeline234;
        end
        9'b011101011 : begin
            mul_a <= coeff235;
            mul_b <= delay_pipeline235;
        end
        9'b011101100 : begin
            mul_a <= coeff236;
            mul_b <= delay_pipeline236;
        end
        9'b011101101 : begin
            mul_a <= coeff237;
            mul_b <= delay_pipeline237;
        end
        9'b011101110 : begin
            mul_a <= coeff238;
            mul_b <= delay_pipeline238;
        end
        9'b011101111 : begin
            mul_a <= coeff239;
            mul_b <= delay_pipeline239;
        end
    9'b011110000 : begin
        mul_a <= coeff240;
        mul_b <= delay_pipeline240;
    end
    9'b011110001 : begin
        mul_a <= coeff241;
        mul_b <= delay_pipeline241;
    end
    9'b011110010 : begin
        mul_a <= coeff242;
        mul_b <= delay_pipeline242;
    end
    9'b011110011 : begin
        mul_a <= coeff243;
        mul_b <= delay_pipeline243;
    end
    9'b011110100 : begin
        mul_a <= coeff244;
        mul_b <= delay_pipeline244;
    end
    9'b011110101 : begin
        mul_a <= coeff245;
        mul_b <= delay_pipeline245;
    end
    9'b011110110 : begin
        mul_a <= coeff246;
        mul_b <= delay_pipeline246;
    end
    9'b011110111 : begin
        mul_a <= coeff247;
        mul_b <= delay_pipeline247;
    end
    9'b011111000 : begin
        mul_a <= coeff248;
        mul_b <= delay_pipeline248;
    end
    9'b011111001 : begin
        mul_a <= coeff249;
        mul_b <= delay_pipeline249;
    end
    9'b011111010 : begin
        mul_a <= coeff250;
        mul_b <= delay_pipeline250;
    end
    9'b011111011 : begin
        mul_a <= coeff251;
        mul_b <= delay_pipeline251;
    end
    9'b011111100 : begin
        mul_a <= coeff252;
        mul_b <= delay_pipeline252;
    end
    9'b011111101 : begin
        mul_a <= coeff253;
        mul_b <= delay_pipeline253;
    end
    9'b011111110 : begin
        mul_a <= coeff254;
        mul_b <= delay_pipeline254;
    end
    9'b011111111 : begin
        mul_a <= coeff255;
        mul_b <= delay_pipeline255;
    end
    endcase
  end
end



/*根据时钟信号进行切换寄存器移位，依次进行卷积。*/
always @(posedge clk or negedge rst_n) begin
  if (rst_n == 1'b0) begin
    // reset
    delay_pipeline1   <= 'd0;
    delay_pipeline2   <= 'd0;
    delay_pipeline3   <= 'd0;
    delay_pipeline4   <= 'd0;
    delay_pipeline5   <= 'd0;
    delay_pipeline6   <= 'd0;
    delay_pipeline7   <= 'd0;
    delay_pipeline8   <= 'd0;
    delay_pipeline9   <= 'd0;
    delay_pipeline10  <= 'd0;
    delay_pipeline11  <= 'd0;
    delay_pipeline12  <= 'd0;
    delay_pipeline13  <= 'd0;
    delay_pipeline14  <= 'd0;
    delay_pipeline15  <= 'd0;
    delay_pipeline16  <= 'd0;
    delay_pipeline17  <= 'd0;
    delay_pipeline18  <= 'd0;
    delay_pipeline19  <= 'd0;
    delay_pipeline20  <= 'd0;
    delay_pipeline21  <= 'd0;
    delay_pipeline22  <= 'd0;
    delay_pipeline23  <= 'd0;
    delay_pipeline24  <= 'd0;
    delay_pipeline25  <= 'd0;
    delay_pipeline26  <= 'd0;
    delay_pipeline27  <= 'd0;
    delay_pipeline28  <= 'd0;
    delay_pipeline29  <= 'd0;
    delay_pipeline30  <= 'd0;
    delay_pipeline31  <= 'd0;
    delay_pipeline32  <= 'd0;
    delay_pipeline33  <= 'd0;
    delay_pipeline34  <= 'd0;
    delay_pipeline35  <= 'd0;
    delay_pipeline36  <= 'd0;
    delay_pipeline37  <= 'd0;
    delay_pipeline38  <= 'd0;
    delay_pipeline39  <= 'd0;
    delay_pipeline40  <= 'd0;
    delay_pipeline41  <= 'd0;
    delay_pipeline42  <= 'd0;
    delay_pipeline43  <= 'd0;
    delay_pipeline44  <= 'd0;
    delay_pipeline45  <= 'd0;
    delay_pipeline46  <= 'd0;
    delay_pipeline47  <= 'd0;
    delay_pipeline48  <= 'd0;
    delay_pipeline49  <= 'd0;
    delay_pipeline50  <= 'd0;
    delay_pipeline51  <= 'd0;
    delay_pipeline52  <= 'd0;
    delay_pipeline53  <= 'd0;
    delay_pipeline54  <= 'd0;
    delay_pipeline55  <= 'd0;
    delay_pipeline56  <= 'd0;
    delay_pipeline57  <= 'd0;
    delay_pipeline58  <= 'd0;
    delay_pipeline59  <= 'd0;
    delay_pipeline60  <= 'd0;
    delay_pipeline61  <= 'd0;
    delay_pipeline62  <= 'd0;
    delay_pipeline63  <= 'd0;
    delay_pipeline64  <= 'd0;
    delay_pipeline65  <= 'd0;
    delay_pipeline66  <= 'd0;
    delay_pipeline67  <= 'd0;
    delay_pipeline68  <= 'd0;
    delay_pipeline69  <= 'd0;
    delay_pipeline70  <= 'd0;
    delay_pipeline71  <= 'd0;
    delay_pipeline72  <= 'd0;
    delay_pipeline73  <= 'd0;
    delay_pipeline74  <= 'd0;
    delay_pipeline75  <= 'd0;
    delay_pipeline76  <= 'd0;
    delay_pipeline77  <= 'd0;
    delay_pipeline78  <= 'd0;
    delay_pipeline79  <= 'd0;
    delay_pipeline80  <= 'd0;
    delay_pipeline81  <= 'd0;
    delay_pipeline82  <= 'd0;
    delay_pipeline83  <= 'd0;
    delay_pipeline84  <= 'd0;
    delay_pipeline85  <= 'd0;
    delay_pipeline86  <= 'd0;
    delay_pipeline87  <= 'd0;
    delay_pipeline88  <= 'd0;
    delay_pipeline89  <= 'd0;
    delay_pipeline90  <= 'd0;
    delay_pipeline91  <= 'd0;
    delay_pipeline92  <= 'd0;
    delay_pipeline93  <= 'd0;
    delay_pipeline94  <= 'd0;
    delay_pipeline95  <= 'd0;
    delay_pipeline96  <= 'd0;
    delay_pipeline97  <= 'd0;
    delay_pipeline98  <= 'd0;
    delay_pipeline99  <= 'd0;
    delay_pipeline100 <= 'd0;
    delay_pipeline101 <= 'd0;
    delay_pipeline102 <= 'd0;
    delay_pipeline103 <= 'd0;
    delay_pipeline104 <= 'd0;
    delay_pipeline105 <= 'd0;
    delay_pipeline106 <= 'd0;
    delay_pipeline107 <= 'd0;
    delay_pipeline108 <= 'd0;
    delay_pipeline109 <= 'd0;
    delay_pipeline110 <= 'd0;
    delay_pipeline111 <= 'd0;
    delay_pipeline112 <= 'd0;
    delay_pipeline113 <= 'd0;
    delay_pipeline114 <= 'd0;
    delay_pipeline115 <= 'd0;
    delay_pipeline116 <= 'd0;
    delay_pipeline117 <= 'd0;
    delay_pipeline118 <= 'd0;
    delay_pipeline119 <= 'd0;
    delay_pipeline120 <= 'd0;
    delay_pipeline121 <= 'd0;
    delay_pipeline122 <= 'd0;
    delay_pipeline123 <= 'd0;
    delay_pipeline124 <= 'd0;
    delay_pipeline125 <= 'd0;
    delay_pipeline126 <= 'd0;
    delay_pipeline127 <= 'd0;
    delay_pipeline128 <= 'd0;
    delay_pipeline129 <= 'd0;
    delay_pipeline130 <= 'd0;
    delay_pipeline131 <= 'd0;
    delay_pipeline132 <= 'd0;
    delay_pipeline133 <= 'd0;
    delay_pipeline134 <= 'd0;
    delay_pipeline135 <= 'd0;
    delay_pipeline136 <= 'd0;
    delay_pipeline137 <= 'd0;
    delay_pipeline138 <= 'd0;
    delay_pipeline139 <= 'd0;
    delay_pipeline140 <= 'd0;
    delay_pipeline141 <= 'd0;
    delay_pipeline142 <= 'd0;
    delay_pipeline143 <= 'd0;
    delay_pipeline144 <= 'd0;
    delay_pipeline145 <= 'd0;
    delay_pipeline146 <= 'd0;
    delay_pipeline147 <= 'd0;
    delay_pipeline148 <= 'd0;
    delay_pipeline149 <= 'd0;
    delay_pipeline150 <= 'd0;
    delay_pipeline151 <= 'd0;
    delay_pipeline152 <= 'd0;
    delay_pipeline153 <= 'd0;
    delay_pipeline154 <= 'd0;
    delay_pipeline155 <= 'd0;
    delay_pipeline156 <= 'd0;
    delay_pipeline157 <= 'd0;
    delay_pipeline158 <= 'd0;
    delay_pipeline159 <= 'd0;
    delay_pipeline160 <= 'd0;
    delay_pipeline161 <= 'd0;
    delay_pipeline162 <= 'd0;
    delay_pipeline163 <= 'd0;
    delay_pipeline164 <= 'd0;
    delay_pipeline165 <= 'd0;
    delay_pipeline166 <= 'd0;
    delay_pipeline167 <= 'd0;
    delay_pipeline168 <= 'd0;
    delay_pipeline169 <= 'd0;
    delay_pipeline170 <= 'd0;
    delay_pipeline171 <= 'd0;
    delay_pipeline172 <= 'd0;
    delay_pipeline173 <= 'd0;
    delay_pipeline174 <= 'd0;
    delay_pipeline175 <= 'd0;
    delay_pipeline176 <= 'd0;
    delay_pipeline177 <= 'd0;
    delay_pipeline178 <= 'd0;
    delay_pipeline179 <= 'd0;
    delay_pipeline180 <= 'd0;
    delay_pipeline181 <= 'd0;
    delay_pipeline182 <= 'd0;
    delay_pipeline183 <= 'd0;
    delay_pipeline184 <= 'd0;
    delay_pipeline185 <= 'd0;
    delay_pipeline186 <= 'd0;
    delay_pipeline187 <= 'd0;
    delay_pipeline188 <= 'd0;
    delay_pipeline189 <= 'd0;
    delay_pipeline190 <= 'd0;
    delay_pipeline191 <= 'd0;
    delay_pipeline192 <= 'd0;
    delay_pipeline193 <= 'd0;
    delay_pipeline194 <= 'd0;
    delay_pipeline195 <= 'd0;
    delay_pipeline196 <= 'd0;
    delay_pipeline197 <= 'd0;
    delay_pipeline198 <= 'd0;
    delay_pipeline199 <= 'd0;
    delay_pipeline200 <= 'd0;
    delay_pipeline201 <= 'd0;
    delay_pipeline202 <= 'd0;
    delay_pipeline203 <= 'd0;
    delay_pipeline204 <= 'd0;
    delay_pipeline205 <= 'd0;
    delay_pipeline206 <= 'd0;
    delay_pipeline207 <= 'd0;
    delay_pipeline208 <= 'd0;
    delay_pipeline209 <= 'd0;
    delay_pipeline210 <= 'd0;
    delay_pipeline211 <= 'd0;
    delay_pipeline212 <= 'd0;
    delay_pipeline213 <= 'd0;
    delay_pipeline214 <= 'd0;
    delay_pipeline215 <= 'd0;
    delay_pipeline216 <= 'd0;
    delay_pipeline217 <= 'd0;
    delay_pipeline218 <= 'd0;
    delay_pipeline219 <= 'd0;
    delay_pipeline220 <= 'd0;
    delay_pipeline221 <= 'd0;
    delay_pipeline222 <= 'd0;
    delay_pipeline223 <= 'd0;
    delay_pipeline224 <= 'd0;
    delay_pipeline225 <= 'd0;
    delay_pipeline226 <= 'd0;
    delay_pipeline227 <= 'd0;
    delay_pipeline228 <= 'd0;
    delay_pipeline229 <= 'd0;
    delay_pipeline230 <= 'd0;
    delay_pipeline231 <= 'd0;
    delay_pipeline232 <= 'd0;
    delay_pipeline233 <= 'd0;
    delay_pipeline234 <= 'd0;
    delay_pipeline235 <= 'd0;
    delay_pipeline236 <= 'd0;
    delay_pipeline237 <= 'd0;
    delay_pipeline238 <= 'd0;
    delay_pipeline239 <= 'd0;
    delay_pipeline240 <= 'd0;
    delay_pipeline241 <= 'd0;
    delay_pipeline242 <= 'd0;
    delay_pipeline243 <= 'd0;
    delay_pipeline244 <= 'd0;
    delay_pipeline245 <= 'd0;
    delay_pipeline246 <= 'd0;
    delay_pipeline247 <= 'd0;
    delay_pipeline248 <= 'd0;
    delay_pipeline249 <= 'd0;
    delay_pipeline250 <= 'd0;
    delay_pipeline251 <= 'd0;
    delay_pipeline252 <= 'd0;
    delay_pipeline253 <= 'd0;
    delay_pipeline254 <= 'd0;
    delay_pipeline255 <= 'd0;
    end
  else if (count == 9'b11000111) begin
    delay_pipeline1  <= xin;
    delay_pipeline2  <= delay_pipeline1;
    delay_pipeline3  <= delay_pipeline2;
    delay_pipeline4  <= delay_pipeline3;
    delay_pipeline5  <= delay_pipeline4;
    delay_pipeline6  <= delay_pipeline5;
    delay_pipeline7  <= delay_pipeline6;
    delay_pipeline8  <= delay_pipeline7;
    delay_pipeline9  <= delay_pipeline8;
    delay_pipeline10 <= delay_pipeline9 ;
    delay_pipeline11 <= delay_pipeline10;
    delay_pipeline12 <= delay_pipeline11;
    delay_pipeline13 <= delay_pipeline12;
    delay_pipeline14 <= delay_pipeline13;
    delay_pipeline15 <= delay_pipeline14;
    delay_pipeline16 <= delay_pipeline15;
    delay_pipeline17 <= delay_pipeline16;
    delay_pipeline18 <= delay_pipeline17;
    delay_pipeline19 <= delay_pipeline18;
    delay_pipeline20 <= delay_pipeline19;
    delay_pipeline21 <= delay_pipeline20;
    delay_pipeline22 <= delay_pipeline21;
    delay_pipeline23 <= delay_pipeline22;
    delay_pipeline24 <= delay_pipeline23;
    delay_pipeline25 <= delay_pipeline24;
    delay_pipeline26 <= delay_pipeline25;
    delay_pipeline27 <= delay_pipeline26;
    delay_pipeline28 <= delay_pipeline27;
    delay_pipeline29 <= delay_pipeline28;
    delay_pipeline30 <= delay_pipeline29;
    delay_pipeline31 <= delay_pipeline30;
    delay_pipeline32 <= delay_pipeline31;
    delay_pipeline33 <= delay_pipeline32;
    delay_pipeline34 <= delay_pipeline33;
    delay_pipeline35 <= delay_pipeline34;
    delay_pipeline36 <= delay_pipeline35;
    delay_pipeline37 <= delay_pipeline36;
    delay_pipeline38 <= delay_pipeline37;
    delay_pipeline39 <= delay_pipeline38;
    delay_pipeline40 <= delay_pipeline39;
    delay_pipeline41 <= delay_pipeline40;
    delay_pipeline42 <= delay_pipeline41;
    delay_pipeline43 <= delay_pipeline42;
    delay_pipeline44 <= delay_pipeline43;
    delay_pipeline45 <= delay_pipeline44;
    delay_pipeline46 <= delay_pipeline45;
    delay_pipeline47 <= delay_pipeline46;
    delay_pipeline48 <= delay_pipeline47;
    delay_pipeline49 <= delay_pipeline48;
    delay_pipeline50 <= delay_pipeline49;
    delay_pipeline51 <= delay_pipeline50;
    delay_pipeline52 <= delay_pipeline51;
    delay_pipeline53 <= delay_pipeline52;
    delay_pipeline54 <= delay_pipeline53;
    delay_pipeline55 <= delay_pipeline54;
    delay_pipeline56 <= delay_pipeline55;
    delay_pipeline57 <= delay_pipeline56;
    delay_pipeline58 <= delay_pipeline57;
    delay_pipeline59 <= delay_pipeline58;
    delay_pipeline60 <= delay_pipeline59;
    delay_pipeline61 <= delay_pipeline60;
    delay_pipeline62 <= delay_pipeline61;
    delay_pipeline63 <= delay_pipeline62;
    delay_pipeline64 <= delay_pipeline63;
    delay_pipeline65 <= delay_pipeline64;
    delay_pipeline66 <= delay_pipeline65;
    delay_pipeline67 <= delay_pipeline66;
    delay_pipeline68 <= delay_pipeline67;
    delay_pipeline69 <= delay_pipeline68;
    delay_pipeline70 <= delay_pipeline69;
    delay_pipeline71 <= delay_pipeline70;
    delay_pipeline72 <= delay_pipeline71;
    delay_pipeline73 <= delay_pipeline72;
    delay_pipeline74 <= delay_pipeline73;
    delay_pipeline75 <= delay_pipeline74;
    delay_pipeline76 <= delay_pipeline75;
    delay_pipeline77 <= delay_pipeline76;
    delay_pipeline78 <= delay_pipeline77;
    delay_pipeline79 <= delay_pipeline78;
    delay_pipeline80 <= delay_pipeline79;
    delay_pipeline81 <= delay_pipeline80;
    delay_pipeline82 <= delay_pipeline81;
    delay_pipeline83 <= delay_pipeline82;
    delay_pipeline84 <= delay_pipeline83;
    delay_pipeline85 <= delay_pipeline84;
    delay_pipeline86 <= delay_pipeline85;
    delay_pipeline87 <= delay_pipeline86;
    delay_pipeline88 <= delay_pipeline87;
    delay_pipeline89 <= delay_pipeline88;
    delay_pipeline90 <= delay_pipeline89;
    delay_pipeline91 <= delay_pipeline90;
    delay_pipeline92 <= delay_pipeline91;
    delay_pipeline93 <= delay_pipeline92;
    delay_pipeline94 <= delay_pipeline93;
    delay_pipeline95 <= delay_pipeline94;
    delay_pipeline96 <= delay_pipeline95;
    delay_pipeline97 <= delay_pipeline96;
    delay_pipeline98 <= delay_pipeline97;
    delay_pipeline99 <= delay_pipeline98;
    delay_pipeline100<=delay_pipeline99 ;
    delay_pipeline101<=delay_pipeline100;
    delay_pipeline102<=delay_pipeline101;
    delay_pipeline103<=delay_pipeline102;
    delay_pipeline104<=delay_pipeline103;
    delay_pipeline105<=delay_pipeline104;
    delay_pipeline106<=delay_pipeline105;
    delay_pipeline107<=delay_pipeline106;
    delay_pipeline108<=delay_pipeline107;
    delay_pipeline109<=delay_pipeline108;
    delay_pipeline110<=delay_pipeline109;
    delay_pipeline111<=delay_pipeline110;
    delay_pipeline112<=delay_pipeline111;
    delay_pipeline113<=delay_pipeline112;
    delay_pipeline114<=delay_pipeline113;
    delay_pipeline115<=delay_pipeline114;
    delay_pipeline116<=delay_pipeline115;
    delay_pipeline117<=delay_pipeline116;
    delay_pipeline118<=delay_pipeline117;
    delay_pipeline119<=delay_pipeline118;
    delay_pipeline120<=delay_pipeline119;
    delay_pipeline121<=delay_pipeline120;
    delay_pipeline122<=delay_pipeline121;
    delay_pipeline123<=delay_pipeline122;
    delay_pipeline124<=delay_pipeline123;
    delay_pipeline125<=delay_pipeline124;
    delay_pipeline126<=delay_pipeline125;
    delay_pipeline127<=delay_pipeline126;
    delay_pipeline128<=delay_pipeline127;
    delay_pipeline129<=delay_pipeline128;
    delay_pipeline130<=delay_pipeline129;
    delay_pipeline131<=delay_pipeline130;
    delay_pipeline132<=delay_pipeline131;
    delay_pipeline133<=delay_pipeline132;
    delay_pipeline134<=delay_pipeline133;
    delay_pipeline135<=delay_pipeline134;
    delay_pipeline136<=delay_pipeline135;
    delay_pipeline137<=delay_pipeline136;
    delay_pipeline138<=delay_pipeline137;
    delay_pipeline139<=delay_pipeline138;
    delay_pipeline140<=delay_pipeline139;
    delay_pipeline141<=delay_pipeline140;
    delay_pipeline142<=delay_pipeline141;
    delay_pipeline143<=delay_pipeline142;
    delay_pipeline144<=delay_pipeline143;
    delay_pipeline145<=delay_pipeline144;
    delay_pipeline146<=delay_pipeline145;
    delay_pipeline147<=delay_pipeline146;
    delay_pipeline148<=delay_pipeline147;
    delay_pipeline149<=delay_pipeline148;
    delay_pipeline150<=delay_pipeline149;
    delay_pipeline151<=delay_pipeline150;
    delay_pipeline152<=delay_pipeline151;
    delay_pipeline153<=delay_pipeline152;
    delay_pipeline154<=delay_pipeline153;
    delay_pipeline155<=delay_pipeline154;
    delay_pipeline156<=delay_pipeline155;
    delay_pipeline157<=delay_pipeline156;
    delay_pipeline158<=delay_pipeline157;
    delay_pipeline159<=delay_pipeline158;
    delay_pipeline160<=delay_pipeline159;
    delay_pipeline161<=delay_pipeline160;
    delay_pipeline162<=delay_pipeline161;
    delay_pipeline163<=delay_pipeline162;
    delay_pipeline164<=delay_pipeline163;
    delay_pipeline165<=delay_pipeline164;
    delay_pipeline166<=delay_pipeline165;
    delay_pipeline167<=delay_pipeline166;
    delay_pipeline168<=delay_pipeline167;
    delay_pipeline169<=delay_pipeline168;
    delay_pipeline170<=delay_pipeline169;
    delay_pipeline171<=delay_pipeline170;
    delay_pipeline172<=delay_pipeline171;
    delay_pipeline173<=delay_pipeline172;
    delay_pipeline174<=delay_pipeline173;
    delay_pipeline175<=delay_pipeline174;
    delay_pipeline176<=delay_pipeline175;
    delay_pipeline177<=delay_pipeline176;
    delay_pipeline178<=delay_pipeline177;
    delay_pipeline179<=delay_pipeline178;
    delay_pipeline180<=delay_pipeline179;
    delay_pipeline181<=delay_pipeline180;
    delay_pipeline182<=delay_pipeline181;
    delay_pipeline183<=delay_pipeline182;
    delay_pipeline184<=delay_pipeline183;
    delay_pipeline185<=delay_pipeline184;
    delay_pipeline186<=delay_pipeline185;
    delay_pipeline187<=delay_pipeline186;
    delay_pipeline188<=delay_pipeline187;
    delay_pipeline189<=delay_pipeline188;
    delay_pipeline190<=delay_pipeline189;
    delay_pipeline191<=delay_pipeline190;
    delay_pipeline192<=delay_pipeline191;
    delay_pipeline193<=delay_pipeline192;
    delay_pipeline194<=delay_pipeline193;
    delay_pipeline195<=delay_pipeline194;
    delay_pipeline196<=delay_pipeline195;
    delay_pipeline197<=delay_pipeline196;
    delay_pipeline198<=delay_pipeline197;
    delay_pipeline199<=delay_pipeline198;
    delay_pipeline200<=delay_pipeline199;

    delay_pipeline201<=delay_pipeline200;
    delay_pipeline202<=delay_pipeline201;
    delay_pipeline203<=delay_pipeline202;
    delay_pipeline204<=delay_pipeline203;
    delay_pipeline205<=delay_pipeline204;
    delay_pipeline206<=delay_pipeline205;
    delay_pipeline207<=delay_pipeline206;
    delay_pipeline208<=delay_pipeline207;
    delay_pipeline209<=delay_pipeline208;
    delay_pipeline210<=delay_pipeline209;
    delay_pipeline211<=delay_pipeline210;
    delay_pipeline212<=delay_pipeline211;
    delay_pipeline213<=delay_pipeline212;
    delay_pipeline214<=delay_pipeline213;
    delay_pipeline215<=delay_pipeline214;
    delay_pipeline216<=delay_pipeline215;
    delay_pipeline217<=delay_pipeline216;
    delay_pipeline218<=delay_pipeline217;
    delay_pipeline219<=delay_pipeline218;
    delay_pipeline220<=delay_pipeline219;
    delay_pipeline221<=delay_pipeline220;
    delay_pipeline222<=delay_pipeline221;
    delay_pipeline223<=delay_pipeline222;
    delay_pipeline224<=delay_pipeline223;
    delay_pipeline225<=delay_pipeline224;
    delay_pipeline226<=delay_pipeline225;
    delay_pipeline227<=delay_pipeline226;
    delay_pipeline228<=delay_pipeline227;
    delay_pipeline229<=delay_pipeline228;
    delay_pipeline230<=delay_pipeline229;
    delay_pipeline231<=delay_pipeline230;
    delay_pipeline232<=delay_pipeline231;
    delay_pipeline233<=delay_pipeline232;
    delay_pipeline234<=delay_pipeline233;
    delay_pipeline235<=delay_pipeline234;
    delay_pipeline236<=delay_pipeline235;
    delay_pipeline237<=delay_pipeline236;
    delay_pipeline238<=delay_pipeline237;
    delay_pipeline239<=delay_pipeline238;
    delay_pipeline240<=delay_pipeline239;
    delay_pipeline241<=delay_pipeline240;
    delay_pipeline242<=delay_pipeline241;
    delay_pipeline243<=delay_pipeline242;
    delay_pipeline244<=delay_pipeline243;
    delay_pipeline245<=delay_pipeline244;
    delay_pipeline246<=delay_pipeline245;
    delay_pipeline247<=delay_pipeline246;
    delay_pipeline248<=delay_pipeline247;
    delay_pipeline249<=delay_pipeline248;
    delay_pipeline250<=delay_pipeline249;
    delay_pipeline251<=delay_pipeline250;
    delay_pipeline252<=delay_pipeline251;
    delay_pipeline253<=delay_pipeline252;
    delay_pipeline254<=delay_pipeline253;
    delay_pipeline255<=delay_pipeline254;
    end
end

endmodule